Share via


在指令碼工作中記錄

在 Integration Services 封裝中使用記錄可以讓您藉由記錄預先定義事件或使用者定義訊息,記錄關於執行進度、結果和問題的詳細資訊以供稍後分析。指令碼工作可以使用 Dts 物件的 Log 方法記錄使用者定義的資料。如果記錄已啟用,而且已在 [設定 SSIS 記錄] 對話方塊的 [詳細資料] 索引標籤上選取 ScriptTaskLogEntry 事件以進行記錄,Log 方法的呼叫會儲存為工作設定之所有記錄提供者中的事件資訊。

[!附註]

雖然您可以直接從指令碼工作執行記錄,不過可能會想考慮實作事件,而不是記錄。使用事件時,不僅可以啟用事件訊息的記錄,還可用預設或使用者定義的事件處理常式回應事件。

如需有關記錄的詳細資訊,請參閱<記錄封裝執行>。

記錄範例

下列範例示範如何透過記錄代表已處理的資料列數目值,從指令碼工作進行記錄。

Public Sub Main()

    Dim rowsProcessed As Integer = 100
    Dim emptyBytes(0) As Byte

    Try
        Dts.Log("Rows processed: " & rowsProcessed.ToString, _
            0, _
            emptyBytes)
        Dts.TaskResult = ScriptResults.Success
    Catch ex As Exception
        'An error occurred.
        Dts.Events.FireError(0, "Script Task Example", _
            ex.Message & ControlChars.CrLf & ex.StackTrace, _
            String.Empty, 0)
        Dts.TaskResult = ScriptResults.Failure
    End Try

End Sub
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;

public class ScriptMain
{


    public void Main()
        {
            //
            int rowsProcessed = 100;
            byte[] emptyBytes = new byte[0];

            try
            {
                Dts.Log("Rows processed: " + rowsProcessed.ToString(), 0, emptyBytes);
                Dts.TaskResult = (int)ScriptResults.Success;
            }
            catch (Exception ex)
            {
                //An error occurred.
                Dts.Events.FireError(0, "Script Task Example", ex.Message + "\r" + ex.StackTrace, String.Empty, 0);
                Dts.TaskResult = (int)ScriptResults.Failure;
            }

        }

}

外部資源

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

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

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