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)
{}
По возможности сделать что-то после того, как все строки будут обработаны.
}