ScriptComponent.PreExecute Method
スクリプト コンポーネントが入力および出力を処理する前に実行する必要があるカスタム コードを実行します。
名前空間: Microsoft.SqlServer.Dts.Pipeline
アセンブリ: Microsoft.SqlServer.TxScript (microsoft.sqlserver.txscript.dll 内)
構文
'宣言
Public Overridable Sub PreExecute
public virtual void PreExecute ()
public:
virtual void PreExecute ()
public void PreExecute ()
public function PreExecute ()
解説
スクリプト コンポーネント開発者は、直接的には ScriptComponent クラスを使用しませんが、UserComponent クラスを介して ScriptComponent から継承する ScriptMain クラスのメソッドおよびプロパティをコーディングすることにより、間接的に使用します。
開発者は PreExecute メソッドをオーバーライドし、データの行を処理する前に必要な 1 回限りのタスクを実行します。
使用例
次のコード サンプルは、スクリプト コンポーネント開発者が、PreExecute メソッド、および PostExecute メソッドを使用して、処理の前後にテキスト ファイルの接続を開いたり閉じたりする方法を示します。このサンプルの詳細については、「スクリプト コンポーネントによる変換先の作成」を参照してください。
[Visual Basic]
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 IDTSConnectionManager90 = _
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
スレッド セーフ
この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム
開発プラットフォーム
サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。
対象プラットフォーム
サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。
参照
関連項目
ScriptComponent Class
ScriptComponent Members
Microsoft.SqlServer.Dts.Pipeline Namespace