次の方法で共有


PipelineComponent.ProcessInput(Int32, PipelineBuffer) メソッド

定義

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

public:
 virtual void ProcessInput(int inputID, Microsoft::SqlServer::Dts::Pipeline::PipelineBuffer ^ buffer);
public virtual void ProcessInput (int inputID, Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer buffer);
abstract member ProcessInput : int * Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer -> unit
override this.ProcessInput : int * Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer -> unit
Public Overridable Sub ProcessInput (inputID As Integer, buffer As PipelineBuffer)

パラメーター

inputID
Int32

コンポーネントの入力の ID です。

buffer
PipelineBuffer

PipelineBuffer オブジェクト。

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  

注釈

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

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

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

while (buffer.NextRow())

{

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

}

if (buffer.EndOfRowset)

{

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

}

適用対象