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 定义的列。 如果组件具有同步输出,缓冲区还将包括组件添加到输出列集合中的列,以及组件上游组件输出列集合中的所有列。 Columns are located in a buffer row using the FindColumnByLineageID method of the BufferManager.

ProcessInput 当数据流任务从上游组件接收完整缓冲区时,将重复调用。 在ProcessInput属性为 true 之前EndOfRowset调用该方法。

使用 NextRow 方法和 EndOfRowset 属性的正确模式为:

while (buffer.NextRow())

{

// 对每一行进行一些操作。

}

if (buffer.EndOfRowset)

{

// 可选,在处理完所有行之后进行一些操作。

}

适用于