PipelineComponent.ProcessInput(Int32, PipelineBuffer) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在运行时,当来自上游组件的 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)
{
// 可选,在处理完所有行之后进行一些操作。
}