ScriptComponent.PostExecute メソッド
スクリプト コンポーネントが入力および出力を処理した後に実行する必要があるカスタム コードを実行します。
名前空間: Microsoft.SqlServer.Dts.Pipeline
アセンブリ: Microsoft.SqlServer.TxScript (Microsoft.SqlServer.TxScript.dll)
構文
'宣言
Public Overridable Sub PostExecute
'使用
Dim instance As ScriptComponent
instance.PostExecute()
public virtual void PostExecute()
public:
virtual void PostExecute()
abstract PostExecute : unit -> unit
override PostExecute : unit -> unit
public function PostExecute()
説明
スクリプト コンポーネント開発者は、直接的には ScriptComponent クラスを使用しませんが、UserComponent クラスを介して ScriptComponent から継承する ScriptMain クラスのメソッドおよびプロパティをコーディングすることにより、間接的に使用します。
開発者は PostExecute メソッドをオーバーライドし、データの行を処理した後で必要なクリーンアップまたは 1 回限りのタスクを実行します。
使用例
次のコード サンプルは、スクリプト コンポーネント開発者が、PreExecute メソッド、および PostExecute メソッドを使用して、処理の前後にテキスト ファイルの接続を開いたり閉じたりする方法を示します。 このサンプルの詳細については、「スクリプト コンポーネントによる変換先の作成」を参照してください。
Imports System.IO
...
Public Class ScriptMain
Inherits UserComponent
Dim copiedAddressFile As String
Private textWriter As StreamWriter
Private columnDelimiter As String = ","
Public Overrides Sub AcquireConnections(ByVal Transaction As Object)
Dim connMgr As IDTSConnectionManager100 = _
Me.Connections.MyFlatFileDestConnectionManager
copiedAddressFile = CType(connMgr.AcquireConnection(Nothing), String)
End Sub
Public Overrides Sub PreExecute()
textWriter = New StreamWriter(copiedAddressFile, False)
End Sub
Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)
With textWriter
If Not Row.AddressID_IsNull Then
.Write(Row.AddressID)
End If
.Write(columnDelimiter)
If Not Row.City_IsNull Then
.Write(Row.City)
End If
.WriteLine()
End With
End Sub
Public Overrides Sub PostExecute()
textWriter.Close()
End Sub
End Class