共用方式為


在資料流程元件中記錄和定義記錄項目

自訂資料流程元件可以使用 IDTSComponentMetaData100 介面的 PostLogMessage 方法,將訊息公佈到現有的記錄項目中。它們也可以使用 IDTSComponentMetaData100 介面的 FireInformation 方法或是類似方法,將資訊呈現給使用者。但是,這個方法會產生引發及處理其他事件的額外負擔,並強制使用者詳查詳細的參考用訊息,以找出他們可能感興趣的訊息。您可以使用自訂記錄項目,如底下所述,將清楚標示的自訂記錄資訊提供給元件的使用者。

註冊及使用自訂記錄項目

註冊自訂記錄項目

若要註冊自訂記錄項目以供元件使用,請覆寫 PipelineComponent 基底類別的 RegisterLogEntries 方法。下列範例會註冊自訂記錄項目,並提供名稱和描述。

using Microsoft.SqlServer.Dts.Runtime;
...
private const string MyLogEntryName = "My Custom Component Log Entry";
private const string MyLogEntryDescription = "Log entry from My Custom Component ";
...
    public override void RegisterLogEntries()
    {
      this.LogEntryInfos.Add(MyLogEntryName,
        MyLogEntryDescription,
        Microsoft.SqlServer.Dts.Runtime.Wrapper.DTSLogEntryFrequency.DTSLEF_CONSISTENT);
    }
Imports Microsoft.SqlServer.Dts.Runtime
...
Private Const MyLogEntryName As String = "My Custom Component Log Entry" 
Private Const MyLogEntryDescription As String = "Log entry from My Custom Component "
...
Public  Overrides Sub RegisterLogEntries() 
  Me.LogEntryInfos.Add(MyLogEntryName, _
    MyLogEntryDescription, _
    Microsoft.SqlServer.Dts.Runtime.Wrapper.DTSLogEntryFrequency.DTSLEF_CONSISTENT) 
End Sub

DTSLogEntryFrequency 列舉會將有關此事件將要記錄之頻率的提示提供給執行階段:

以上範例使用 DTSLEF_CONSISTENT,因為此元件預期每次執行都會記錄項目一次。

在註冊自訂記錄項目以及將自訂元件的執行個體加入到資料流程設計師介面之後,設計師中的 [記錄] 對話方塊會顯示新的記錄項目,其中 "My Custom Component Log Entry" 名稱會出現在可用的記錄項目清單中。

記錄到自訂記錄項目

在註冊自訂記錄項目以後,此元件現在可以記錄自訂訊息。底下範例會在 PreExecute 方法期間撰寫自訂記錄項目,其中包含此元件所使用之 SQL 陳述式的文字。

    public override void PreExecute()
    {
      DateTime now = DateTime.Now;
      byte[] additionalData = null;
      this.ComponentMetaData.PostLogMessage(MyLogEntryName,
        this.ComponentMetaData.Name,
        "Command Sent was: " + myCommand.CommandText,
        now, now, 0, ref additionalData);
    }
Public  Overrides Sub PreExecute() 
  Dim now As DateTime = DateTime.Now 
  Dim additionalData As Byte() = Nothing 
  Me.ComponentMetaData.PostLogMessage(MyLogEntryName, _
    Me.ComponentMetaData.Name, _
    "Command Sent was: " + myCommand.CommandText, _
    now, now, 0, additionalData) 
End Sub

現在如果使用者在執行封裝時,選取了 [記錄] 對話方塊中的 "My Custom Component Log Entry",此記錄將會包含一個清楚標示為 "User::My Custom Component Log Entry" 的項目。這個新的記錄項目包含了 SQL 陳述式的文字、時間戳記以及開發人員記錄的任何其他資料。

Integration Services 圖示 (小) 掌握 Integration Services 的最新狀態

若要取得 Microsoft 的最新下載、文件、範例和影片以及社群中的選定解決方案,請瀏覽 MSDN 或 TechNet 上的 Integration Services 頁面:

若要得到這些更新的自動通知,請訂閱該頁面上所提供的 RSS 摘要。