使用指令碼元件增強錯誤輸出
根據預設,Integration Services 錯誤輸出中的兩個額外數據行 ErrorCode 和 ErrorColumn 只包含代表錯誤號碼的數值代碼,以及發生錯誤之數據行的標識符。 這些數值可能會有有限的使用,而不會有對應的錯誤描述。
本主題描述如何使用文稿元件,將錯誤描述數據行新增至數據流中現有的錯誤輸出數據。 此範例使用 GetErrorDescription 介面的 IDTSComponentMetaData100 方法 (可透過指令碼元件的 ComponentMetaData 屬性取得),新增對應至特定預先定義的 Integration Services 錯誤碼的錯誤描述。
注意
如果您要建立可以更輕鬆地在多個資料流程工作與多個封裝之間重複使用的元件,請考慮使用這個指令碼元件範例中的程式碼,做為自訂資料流程元件的起點。 如需詳細資訊,請參閱 開發自訂資料流程元件。
範例
此處顯示的範例會使用設定為轉換的腳本元件,將錯誤描述數據行新增至數據流中現有的錯誤輸出數據。
如需如何設定文本元件以在數據流中當做轉換的詳細資訊,請參閱使用腳本元件建立同步轉換和使用腳本元件建立異步轉換。
設定此指令碼元件範例
在建立新指令碼元件之前,請先設定資料流程中的上游元件,使它在錯誤或截斷發生時將資料列重新導向至其錯誤輸出。 為了進行測試,您可能會想要以確定錯誤將發生的方式設定元件,例如,在查閱將失敗的兩個資料表之間,設定「查閱」轉換。
將新指令碼元件加入資料流程設計師介面,並將它設定為轉換。
從上游元件將錯誤輸出連接至新指令碼元件。
開啟指令碼轉換編輯器,然後在 [指令碼] 頁面上選取 ScriptLanguage 屬性的指令碼語言。
按一下 [編輯指令碼] 以開啟 Microsoft Visual Studio Tools for Applications (VSTA) IDE,並新增以下所示的範例程式碼。
關閉 VSTA。
在 [腳本轉換編輯器] 的 [輸入 數據行] 頁面上,選取 ErrorCode 數據行。
在 [輸入和輸出] 頁面上,新增名為 ErrorDescription 類型的
String
新輸出數據行。 將新資料行的預設長度增加至 255,以支援長訊息。關閉指令碼轉換編輯器。
將指令碼元件的輸出附加至適當的目的地。 一般檔案目的地對於特定測試而言是最容易設定的。
執行封裝。
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Row.ErrorDescription = _
Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)
End Sub
End Class
public class ScriptMain:
UserComponent
{
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);
}
}
使用 Integration Services 保持最新狀態
如需來自Microsoft的最新下載、文章、範例和影片,以及來自社群的所選解決方案,請流覽 MSDN 上的 Integration Services 頁面:
流覽 MSDN 上的 Integration Services 頁面
如需這些更新的自動通知,請訂閱頁面上可用的 RSS 摘要。