Condividi tramite


PipelineComponent.ProcessInput(Int32, PipelineBuffer) Metodo

Definizione

Chiamato in fase di esecuzione quando un oggetto PipelineBuffer di un componente a monte è disponibile per il componente, per consentirgli di elaborare le righe in ingresso.

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)

Parametri

inputID
Int32

ID dell'input del componente.

buffer
PipelineBuffer

Oggetto PipelineBuffer.

Esempio

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  

Commenti

Il ProcessInput metodo viene chiamato per fornire al componente un oggetto completo PipelineBuffer che contiene righe dal componente upstream. Le colonne contenute nel buffer includono tali colonne definite nel IDTSInputColumnCollection100 componente. Se il componente ha output sincroni, il buffer includerà anche le colonne aggiunte alla raccolta di colonne di output dal componente e tutte le colonne nell'insieme di colonne di output dei componenti upstream dal componente. Le colonne si trovano in una riga del buffer usando il FindColumnByLineageID metodo di BufferManager.

ProcessInput verrà chiamato ripetutamente come l'attività flusso di dati riceve buffer completi dai componenti upstream. Il ProcessInput metodo viene chiamato finché la EndOfRowset proprietà non è true.

Il modello corretto per l'uso del NextRow metodo e la EndOfRowset proprietà è:

while (buffer.NextRow())

{

// Do something with each row.

}

if (buffer.EndOfRowset)

{

// Optionally, do something after all rows have been processed.

}

Si applica a