次の方法で共有


スクリプト タスクでのイベントの発生

更新 : 2006 年 4 月 14 日

イベントは、エラーや警告、およびタスクの進行状況や状態などのその他の情報を、親パッケージにレポートする方法を提供するものです。パッケージには、イベントの通知機能を管理するためのイベント ハンドラがあります。スクリプト タスクは、Dts オブジェクトの Events プロパティに対してメソッドを呼び出して、イベントを発生させることができます。Integration Services パッケージがイベントを処理する方法の詳細については、「Integration Services のイベント ハンドラ」を参照してください。

イベントは、パッケージ内で有効な任意のログ プロバイダに記録できます。ログ プロバイダは、イベントに関する情報をデータ ストアに保存します。スクリプト タスクは、イベントを発生させずに Log メソッドを使用して、情報をログ プロバイダに記録することもできます。Log メソッドの使用方法の詳細については、「スクリプト タスクでのログ記録」を参照してください。

イベントを発生させるには、スクリプト タスクは Events プロパティによって公開される次のメソッドのいずれかを呼び出します。

イベント 説明

FireCustomEvent

パッケージ内でユーザー定義のカスタム イベントを発生させます。

FireError

パッケージにエラー条件を通知します。

FireInformation

ユーザーに情報を提供します。

FireProgress

タスクの進行状況をパッケージに通知します。

FireQueryCancel

パッケージがタスクを途中でシャットダウンする必要があるかどうかを示す値を返します。

FireWarning

エラー条件ではないが、タスクがユーザーに通知する正当な理由がある状態であることをパッケージに通知します。

イベントの例

次の例では、スクリプト タスク内でイベントを発生させる方法を示します。この例では、ネイティブ Windows API 関数を使用して、インターネット接続が使用できるかどうかを確認します。接続が使用できない場合、エラーを発生させます。使用されているモデム接続が切断される可能性がある場合、この例では警告が発生します。それ以外の場合は、インターネット接続が検出されたことを示す情報メッセージを返します。

Private Declare Function InternetGetConnectedState Lib "wininet" _
    (ByRef dwFlags As Long, ByVal dwReserved As Long) As Long

Private Enum ConnectedStates
    LAN = &H2
    Modem = &H1
    Proxy = &H4
    Offline = &H20
    Configured = &H40
    RasInstalled = &H10
End Enum

Public Sub Main()

    Dim dwFlags As Long
    Dim connectedState As Long
    Dim fireAgain as Boolean

    connectedState = InternetGetConnectedState(dwFlags, 0)

    If connectedState <> 0 Then
        If (dwFlags And ConnectedStates.Modem) = ConnectedStates.Modem Then
            Dts.Events.FireWarning(0, "Script Task Example", _
                "Volatile Internet connection detected.", String.Empty, 0)
        Else
            Dts.Events.FireInformation(0, "Script Task Example", _
                "Internet connection detected.", String.Empty, 0, fireAgain)
        End If
    Else
        ' If not connected to the Internet, raise an error.
        Dts.Events.FireError(0, "Script Task Example", _
            "Internet connection not available.", String.Empty, 0)
    End If

    Dts.TaskResult = Dts.Results.Success

End Sub

参照

その他の技術情報

Integration Services のイベント ハンドラ
パッケージのイベント ハンドラの作成

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

変更内容 :
  • コード サンプル内の ByRef パラメータ fireAgain の使用方法を修正しました。