您目前已離線,請等候您的網際網路重新連線

如何使用 SQL Server 2005 Integration Services 封裝中的指令碼工作將資訊寫入應用程式事件記錄檔

Beta 版資訊
本文將告訴您 Beta 版的 Microsoft 產品。本文中的資訊係依「現況」提供,如有變更恕不另行通知。

Microsoft 不提供本 Beta 版產品的一般產品支援。如需有關如何取得 Beta 版本支援的詳細資訊,請參閱隨附於 Beta 版產品檔案中的說明文件,或是造訪下載此版本產品的網站。
結論
當您使用 Microsoft SQL Server Business Intelligence Development Studio 來建立 Microsoft SQL Server 2005 Integration Services (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. 按一下 [控制流程] 索引標籤,然後按兩下 [指令碼工作][指令碼工作編輯器] 對話方塊便會出現。
  7. 按一下左邊窗格中的 [指令碼] 項目,然後將 ReadOnlyVariables 屬性的值變更為下面的值:
    PackageName,StartTime,ExecutionInstanceGUID,mycount
    注意 PackageName、StartTime 和 ExecutionInstanceGUID 項目是系統變數,這些系統變數是用來將封裝資訊寫入 Windows 應用程式事件記錄檔。
  8. [指令碼工作編輯器] 對話方塊中,按一下 [設計指令碼]
  9. 當新的 [Microsoft Visual Studio for Applications] 視窗出現時,將下面的程式碼範例貼入 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
  10. 關閉 [Microsoft Visual Studio for Application] 視窗。
  11. [指令碼工作編輯器] 對話方塊中,按一下 [確定]
  12. F5 以執行封裝。
當封裝執行成功時,Windows 應用程式事件記錄檔中會出現類似以下的資訊:

事件類型:資訊
事件來源:RowCountReporting from SSIS
事件類別目錄:磁碟
事件 ID:777
日期:8/10/2005
時間:11:30:51 PM
使用者:N/A
電腦: ComputerName
描述:
已處理的資料列:
case Rows:3
=============================================
封裝:RowCountsInEventLog
已啟動:9/14/2005 2:27:19 PM
目前時間:9/14/2005 2:27:19 PM
=============================================
封裝執行期間 (秒):0
執行 GUID:{07406D68-487F-4733-BA3A-DA66A8AF7EFA}

如需詳細資訊,請參閱 http://support.microsoft.com 上的「說明和支援中心」。

参考
如需詳細資訊,請參閱《Microsoft SQL Server 2005 線上叢書》的下列主題:
  • <指令碼工作>(Script Task)
  • <指令碼工作的程式設計>(Programming the Script Task)
  • <HOW TO:使用工作編輯器設定工作屬性>(Set Task Properties Using a Task Editor)
如需有關如何使用 Microsoft Visual Basic 寫入 Windows 應用程式事件記錄檔的詳細資訊,請造訪下列 Microsoft Developer Network (MSDN) 網站:
內容

文章識別碼:906560 - 最後檢閱時間:09/22/2006 03:30:53 - 修訂: 2.0

Microsoft SQL Server 2005 Standard Edition Community Technology Preview, Microsoft SQL Server 2005 Developer Edition Community Technology Preview, Microsoft SQL Server 2005 Enterprise Edition Community Technology Preview

  • kbsql2005ssis kbhowto KB906560
意見反應