Condividi tramite


PipelineBuffer.DirectRow(Int32) Metodo

Definizione

Invia una riga da un oggetto PipelineBuffer all'oggetto IDTSOutput100 specificato.

public:
 void DirectRow(int outputID);
public void DirectRow (int outputID);
member this.DirectRow : int -> unit
Public Sub DirectRow (outputID As Integer)

Parametri

outputID
Int32

ID dell'oggetto IDTSOutput100 cui viene inviata la riga PipelineBuffer.

Esempio

Nell'esempio seguente viene illustrato un componente che contiene due output nello stesso gruppo di esclusione. Durante ProcessInput le righe vengono inviate a uno o all'altro degli output tramite il DirectRow metodo .

public override void ProvideComponentProperties()  
{  
    IDTSInput100 input = ComponentMetaData.InputCollection.New();  
    Input.Name = "DTSSampleInput";  

    IDTSOutput output = ComponentMetaData.OutputCollection.New();  
    output.ExclusionGroup = 1;  
    output.Name = "Output1";  
    output.SynchronousInputID = input.ID;  

    IDTSOutput output = ComponentMetaData.OutputCollection.New();  
    output.ExclusionGroup = 1;  
    output.Name = "Output2";  
    output.SynchronousInputID = input.ID;  
}  
public override void ProcessInput(int inputID, PipelineBuffer buffer)  
{  
    IDTSInput100 input = ComponentMetaData.InputCollection.GetObjectByID(inputID);  

    IDTSOutput100 output1 = ComponentMetaData.OutputCollection[0];  
    IDTSOutput100 output2 = ComponentMetaData.OutputCollection[1];  

    while( buffer.NextRow())  
    {  
        // TODO: Insert if/then block here.  
        // If criteria is met, direct the buffer row to output1.  
        buffer.DirectRow(output1.ID);  
        // Otherwise, direct the row to output2.  
         buffer.DirectRow(output2.ID);  
    }  
}  
Public Overrides Sub ProvideComponentProperties()   
 Dim input As IDTSInput100 = ComponentMetaData.InputCollection.New   
 Input.Name = "DTSSampleInput"   
 Dim output As IDTSOutput = ComponentMetaData.OutputCollection.New   
 output.ExclusionGroup = 1   
 output.Name = "Output1"   
 output.SynchronousInputID = input.ID   
 Dim output As IDTSOutput = ComponentMetaData.OutputCollection.New   
 output.ExclusionGroup = 1   
 output.Name = "Output2"   
 output.SynchronousInputID = input.ID   
End Sub   

Public  Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As PipelineBuffer)   
 Dim input As IDTSInput100 = ComponentMetaData.InputCollection.GetObjectByID(inputID)   
 Dim output1 As IDTSOutput100 = ComponentMetaData.OutputCollection(0)   
 Dim output2 As IDTSOutput100 = ComponentMetaData.OutputCollection(1)   
While buffer.NextRow   
  ' TODO: Insert if/then block here.  
  ' If criteria is met, direct the buffer row to output1.  
   buffer.DirectRow(output1.ID)   
  ' Otherwise, direct the row to output2.  
   buffer.DirectRow(output2.ID)   
 End While   
End Sub  

Commenti

Il DirectRow metodo viene chiamato dai componenti che contengono più output nello stesso ExclusionGroupoggetto . Viene usato per indirizzare una PipelineBuffer riga all'output specificato, ovvero un output specifico nel componente. Questo metodo può essere usato per gli output di errore e non di errore, tuttavia, il DirectErrorRow metodo deve essere usato per inviare righe a un output degli errori.

Se un componente con due output sincroni nello stesso gruppo di esclusione sposta un buffer alla riga successiva usando il NextRow metodo senza indirizzare la riga a un output specifico, la riga viene inviata a entrambi gli output.

Si applica a