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 компоненте. Если у компонента синхронные выходы, буфер также будет включать столбцы, добавленные компонентом в коллекцию выходных столбцов, и все столбцы из выходной коллекции компонентов, расположенных выше компонента. Столбцы размещаются в буферной строке с помощью FindColumnByLineageID метода BufferManager.

ProcessInput будет вызываться многократно, когда задача потока данных получает полные буферы от восходящих компонентов. ProcessInput Метод вызывается до тех пор, пока свойство EndOfRowset не будет true.

Правильный паттерн для использования метода NextRow и свойства EndOfRowset выглядит так:

пока (буфер. NextRow())

{}

Сделайте что-то с каждым рядом.

}

если (буфер. EndOfRowset)

{}

По возможности сделать что-то после того, как все строки будут обработаны.

}

Применяется к