ScriptComponent.PreExecute メソッド
スクリプト コンポーネントが入力および出力を処理する前に実行する必要があるカスタム コードを実行します。
名前空間: Microsoft.SqlServer.Dts.Pipeline
アセンブリ: Microsoft.SqlServer.TxScript (Microsoft.SqlServer.TxScript.dll)
構文
'宣言
Public Overridable Sub PreExecute
'使用
Dim instance As ScriptComponent
instance.PreExecute()
public virtual void PreExecute()
public:
virtual void PreExecute()
abstract PreExecute : unit -> unit
override PreExecute : unit -> unit
public function PreExecute()
説明
スクリプト コンポーネント開発者は、直接的には ScriptComponent クラスを使用しませんが、UserComponent クラスを介して ScriptComponent から継承する ScriptMain クラスのメソッドおよびプロパティをコーディングすることにより、間接的に使用します。
開発者は PreExecute メソッドをオーバーライドし、データの行を処理する前に必要な 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