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

文章翻譯 文章翻譯
文章編號: 906560 - 檢視此文章適用的產品。
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) 網站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vbCode/html/vbtskCodeWritingToEventLogVisualBasic.asp

屬性

文章編號: 906560 - 上次校閱: 2006年9月22日 - 版次: 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
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com