次の方法で共有


ProcessInput メソッド

上流コンポーネントからの PipelineBuffer がコンポーネントで利用可能な場合、実行時に呼び出され、コンポーネントが受信行を処理できるようにします。

名前空間:  Microsoft.SqlServer.Dts.Pipeline
アセンブリ:  Microsoft.SqlServer.PipelineHost (Microsoft.SqlServer.PipelineHost.dll)

構文

'宣言
Public Overridable Sub ProcessInput ( _
    inputID As Integer, _
    buffer As PipelineBuffer _
)
'使用
Dim instance As PipelineComponent
Dim inputID As Integer
Dim buffer As PipelineBuffer

instance.ProcessInput(inputID, buffer)
public virtual void ProcessInput(
    int inputID,
    PipelineBuffer buffer
)
public:
virtual void ProcessInput(
    int inputID, 
    PipelineBuffer^ buffer
)
abstract ProcessInput : 
        inputID:int * 
        buffer:PipelineBuffer -> unit 
override ProcessInput : 
        inputID:int * 
        buffer:PipelineBuffer -> unit 
public function ProcessInput(
    inputID : int, 
    buffer : PipelineBuffer
)

パラメーター

説明

ProcessInput メソッドは、上流コンポーネントの行を含む完全な PipelineBuffer オブジェクトをコンポーネントに提供するために呼び出されます。バッファ内の列には、コンポーネントの IDTSInputColumnCollection100 で定義されている列が含まれます。コンポーネントに同期出力がある場合は、バッファには、そのコンポーネントによって出力列コレクションに追加された列、およびそのコンポーネントの上流にあるコンポーネントの出力列コレクション内のすべての列も含まれます。バッファ行内で列を検索するには、BufferManagerFindColumnByLineageID メソッドを使用します。

ProcessInput は、データ フロー タスクが上流コンポーネントから受け取るバッファでいっぱいになるたびに、繰り返し呼び出されます。ProcessInput メソッドは、EndOfRowset プロパティが true になるまで呼び出されます。

NextRow メソッドと EndOfRowset プロパティを使用する正しいパターンを次に示します。

while (buffer.NextRow())

{

// 各行について何らかの処理を行う。

}

if (buffer.EndOfRowset)

{

// 必要に応じて、すべての行が処理された後に何らかの処理を行う。

}

使用例

public override void ProcessInput( int inputID, PipelineBuffer buffer )
{
    while( buffer.NextRow() )
    {
        // TODO: Read or write data to the columns in the buffer.
    }
}
Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As PipelineBuffer) 
 While buffer.NextRow 
  ' TODO: Read or write data to the columns in the buffer.
 End While 
End Sub