Udostępnij za pośrednictwem


Metoda PipelineBuffer.DirectRow

Wysyła wiersz z PipelineBuffer na określony IDTSOutput100.

Przestrzeń nazw:  Microsoft.SqlServer.Dts.Pipeline
Zestaw:  Microsoft.SqlServer.PipelineHost (w Microsoft.SqlServer.PipelineHost.dll)

Składnia

'Deklaracja
Public Sub DirectRow ( _
    outputID As Integer _
)
'Użycie
Dim instance As PipelineBuffer
Dim outputID As Integer

instance.DirectRow(outputID)
public void DirectRow(
    int outputID
)
public:
void DirectRow(
    int outputID
)
member DirectRow : 
        outputID:int -> unit 
public function DirectRow(
    outputID : int
)

Parametry

Uwagi

DirectRow Przez składniki, które zawierają wiele wyjść w tym samym wywoływana jest metoda ExclusionGroup.Jest używane do kierowania PipelineBuffer wiersza do określonego wyjścia — szczególne dane wyjściowe składnika.Ta metoda może służyć do błędu i wyjść bez błędów, jednakże, DirectErrorRow metodę wysyłania wierszy do wyjścia błąd.

Jeśli składnik, który ma dwa synchroniczne wyprowadza w tej samej grupy wykluczeń zaliczek buforu do następnego za pomocą wiersza NextRow metoda bez kierowania wiersza do określonego wyjścia, wiersz jest wysyłana do obu wyjść.

Przykłady

Poniższy przykład pokazuje składnik, który zawiera dwa wyjścia do tej samej grupy wykluczeń.Podczas ProcessInput wiersze są wysyłane do jednego lub drugiego z wyjść za pomocą DirectRow metoda.

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