วิธีการเขียนข้อมูลลงในแฟ้มบันทึกเหตุการณ์ของโปรแกรมประยุกต์ ด้วยการใช้งานสคริปต์ในแพคเกจของบริการการรวม SQL Server 2005


สรุป


เมื่อคุณใช้ Microsoft SQL Server Business Intelligence Development Studio เมื่อต้องการสร้างแพคเกจ Microsoft SQL Server 2005 รวมบริการ (SSIS) คุณสามารถรวมงานสคริปต์ในแพคเกจ SSIS ในการดำเนินงาน

ตัวอย่างเช่น งานอาจเขียนคอลเลกชันข้อมูลที่ตัวแปรเพื่อบันทึกเหตุการณ์ของโปรแกรมประยุกต์ของ Windows คุณสามารถสร้างแพคเกจการ SSIS ที่ประกอบด้วยงานการไหลของข้อมูล งานการไหลของข้อมูลนี้รวมถึงการแปลงเป็นจำนวนแถว คุณสามารถใช้งานสคริปต์ในการเขียนข้อมูลที่ถูกรวบรวม โดยการแปลงจำนวนแถวเพื่อบันทึกเหตุการณ์ของโปรแกรมประยุกต์ของ Windows

บทความนี้อธิบายวิธีการใช้งานสคริปต์สามารถเขียนข้อมูลไปยังแฟ้มบันทึกเหตุการณ์ของโปรแกรมประยุกต์ใน Windows

ข้อมูลเพิ่มเติม


ตัวอย่างนี้สมมติว่า คุณได้สร้างองค์ประกอบต่อไปนี้ในแพคเกจ SSIS:
  • งานการไหลของข้อมูล
  • งานสคริปต์
  • ตัวเชื่อมต่อจากกระแสข้อมูลงานไปยังงานสคริปต์
  • ในงานการไหลของข้อมูล คุณสร้างการแปลงแบบจำนวนแถวในกระแสข้อมูล
เมื่อคุณเรียกใช้แพคเกจ การแปลงจำนวนแถวที่ส่งกลับข้อมูลนับจำนวนแถวที่คุณต้องการเขียนลงในแฟ้มบันทึกเหตุการณ์ของโปรแกรมประยุกต์ใน Windows

เมื่อต้องการทำเช่นนี้ ให้ทำตามขั้นตอนเหล่านี้ในการ SQL Server Business Intelligence Development Studio:
  1. เมื่อใช้งานแท็บควบคุมการไหลคลิกขวาพื้นผิวการออกแบบ แล้ว คลิ กตัวแปร หน้าต่างตัวแปรปรากฏในบานหน้าต่างด้านซ้าย
  2. ในหน้าต่างตัวแปรคลิกตัวแปรเพิ่มเมื่อต้องการเพิ่มตัวแปรที่ชื่อ mycount โดยค่าเริ่มต้น ชนิดข้อมูลของตัวแปร mycount ใหม่เป็นInt32

    หมายเหตุ อ้างอิงไปยังชื่อตัวแปรถูกเทียบ
  3. คลิกสองครั้งที่งานการไหลของข้อมูล ที่
    แท็บการไหลของข้อมูลปรากฏขึ้น
  4. คลิกสองครั้งที่การแปลงจำนวนแถว กล่องโต้ตอบตัวแก้ไขขั้นสูงปรากฏขึ้น
  5. ตั้งค่าของคุณสมบัติVariableNameไป
    mycount
  6. คลิกที่แท็บควบคุมการไหลและจากนั้น คลิกสองครั้งที่งานสคริปต์ กล่องโต้ตอบงาน Script Editorปรากฏขึ้น
  7. คลิกรายการสคริปต์ในบานหน้าต่างด้านซ้าย และจากนั้น เปลี่ยนค่าของคุณสมบัติReadOnlyVariablesเป็นค่าต่อไปนี้:
    PackageName,StartTime,ExecutionInstanceGUID,mycount
    หมายเหตุ รายการชื่อแพคเกจ เวลาเริ่มต้น และ ExecutionInstanceGUID มีตัวแปรของระบบ ตัวแปรเหล่านี้ระบบจะใช้ในการเขียนข้อมูลการแพคเกจเพื่อบันทึกเหตุการณ์ของโปรแกรมประยุกต์ของ Windows
  8. ใน
    กล่องโต้ตอบตัวแก้ไขงานสคริปต์กล่อง คลิกสคริปต์การออกแบบ
  9. ตรวจสอบให้แน่ใจว่า namespaces ที่ต่อไปนี้จะรวมอยู่ในรหัสของคุณก่อนที่จะประกาศอื่น ๆ:
    Imports SystemImports System.Data
    Imports System.Math
    Imports System.Diagnostics
    Imports Microsoft.SqlServer.Dts.Runtime
  10. เมื่อปรากฏหน้าต่างMicrosoft Visual Studio สำหรับแอพลิเคชันใหม่ แทนตัวอย่างรหัสต่อไปนี้ มีรหัสในวิธีการMain()
    Dim varMyCount As Variable = Dts.Variables("mycount") 'Dim varPackageName As Variable = Dts.Variables("PackageName")
    Dim varStartTime As Variable = Dts.Variables("StartTime")
    Dim varInstanceID As Variable = Dts.Variables("ExecutionInstanceGUID")
    Dim PackageDuration As Long

    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    ' Event log needs
    '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Dim sSource As String
    Dim sLog As String
    Dim sEventMessage As String
    Dim sMachine As String
    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    PackageDuration = DateDiff("s", varStartTime.Value, Now())

    sSource = "RowCountReporting from SSIS"

    ' We need the message posted to the Application event log.

    sLog = "Application"
    sEventMessage = "Rows Processed: " & Chr(10) _
    & " case Rows:" + varMyCount.Value().ToString + Chr(10) _
    & "=============================================" & Chr(10) _
    & "The Package: " + varPackageName.Value().ToString _
    & Chr(10) _
    & "Started: " & varStartTime.Value().ToString _
    & Chr(10) _
    & "Current Time:" & System.DateTime.Now _
    & Chr(10) _
    & "=============================================" _
    & Chr(10) _
    & "Package Run Duration in seconds: " & PackageDuration _
    & Chr(10) _
    & "Execution GUID: " & varInstanceID.Value().ToString
    sMachine = "."

    If Not EventLog.SourceExists(sSource, sMachine) Then
    EventLog.CreateEventSource(sSource, sLog, sMachine)
    End If

    Dim ELog As New EventLog(sLog, sMachine, sSource)

    ELog.WriteEntry(sEventMessage, EventLogEntryType.Information, 777, 2)

    '###############################
    Dts.TaskResult = Dts.Results.Success
  11. ปิดหน้าต่างMicrosoft Visual Studio สำหรับแอพลิเคชัน
  12. ใน
    กล่องโต้ตอบตัวแก้ไขงานสคริปต์กล่อง คลิกตกลง
  13. กดF5เพื่อเรียกใช้แพคเกจ
เมื่อเสร็จเรียบร้อยแล้วเรียกใช้แพคเกจ ข้อมูลที่คล้ายกับต่อไปนี้ปรากฏในบันทึกเหตุการณ์ของโปรแกรมประยุกต์ของ Windows:

ข้อมูลอ้างอิง


สำหรับข้อมูลเพิ่มเติม ดูหัวข้อต่อไปนี้ใน Microsoft SQL Server 2005 Books Online:
  • งานสคริปต์
  • งานสคริปต์การเขียนโปรแกรม
  • วิธีการ: ตั้งค่าคุณสมบัติของงานโดยใช้ตัวแก้ไขงาน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเขียนไปยังแฟ้มบันทึกเหตุการณ์ของโปรแกรมประยุกต์ของ Windows โดยใช้ Microsoft Visual Basic แวะไปเว็บไซต์ Microsoft Developer Network (MSDN) ต่อไปนี้: