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

Идентификатор входных данных компонента.

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)

{

// Кроме того, можно сделать что-то после обработки всех строк.

}

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