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