Programmatisch verbinding maken met gegevensstroomonderdelen

Van toepassing op:SQL Server SSIS Integration Runtime in Azure Data Factory

Nadat je componenten hebt toegevoegd aan de dataflowtaak, verbind je ze om een uitvoeringsboom te creëren die de datastroom van bronnen via transformaties naar bestemmingen weergeeft. Je gebruikt IDTSPath100 objecten om de componenten in de datastroom te verbinden.

Een pad creëren

Roep de Nieuwe methode van de PathCollection eigenschap van de MainPipe interface aan om een nieuw pad aan te maken en voeg dit toe aan de verzameling paden in de dataflowtaak. Deze methode geeft een nieuw, losgekoppeld IDTSPath100 object terug, dat je vervolgens gebruikt om twee componenten te verbinden.

Roep de AttachPathAndPropagateNotifications methode aan om het pad te verbinden en om de componenten die aan het pad deelnemen te laten weten dat ze verbonden zijn. Deze methode accepteert een IDTSOutput100 van de upstream-component en een IDTSInput100 van de downstream-component als parameters. Standaard creëert de aanroep van de ProvideComponentProperties methode van de component een enkele invoer voor componenten die invoer hebben, en één enkele uitgang voor componenten die outputs hebben. Het volgende voorbeeld gebruikt deze standaarduitvoer van de bron en de invoer van de bestemming.

Sample

Het volgende codevoorbeeld laat zien hoe je een pad tussen twee componenten kunt opzetten.

using System;  
using Microsoft.SqlServer.Dts.Runtime;  
using Microsoft.SqlServer.Dts.Pipeline;  
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;  
  
namespace Microsoft.SqlServer.Dts.Samples  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  
      Package package = new Package();  
      Executable e = package.Executables.Add("STOCK:PipelineTask");  
      TaskHost thMainPipe = e as TaskHost;  
      MainPipe dataFlowTask = thMainPipe.InnerObject as MainPipe;  
  
      // Create the source component.    
      IDTSComponentMetaData100 source =  
        dataFlowTask.ComponentMetaDataCollection.New();  
      source.ComponentClassID = "DTSAdapter.OleDbSource";  
      CManagedComponentWrapper srcDesignTime = source.Instantiate();  
      srcDesignTime.ProvideComponentProperties();  
  
      // Create the destination component.  
      IDTSComponentMetaData100 destination =  
        dataFlowTask.ComponentMetaDataCollection.New();  
      destination.ComponentClassID = "DTSAdapter.OleDbDestination";  
      CManagedComponentWrapper destDesignTime = destination.Instantiate();  
      destDesignTime.ProvideComponentProperties();  
  
      // Create the path.  
      IDTSPath100 path = dataFlowTask.PathCollection.New();  
      path.AttachPathAndPropagateNotifications(source.OutputCollection[0],  
        destination.InputCollection[0]);  
    }  
  }  

}

Imports Microsoft.SqlServer.Dts.Runtime  
Imports Microsoft.SqlServer.Dts.Pipeline  
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper  
  
Module Module1  
  
  Sub Main()  
  
    Dim package As Microsoft.SqlServer.Dts.Runtime.Package = _  
      New Microsoft.SqlServer.Dts.Runtime.Package()  
    Dim e As Executable = package.Executables.Add("STOCK:PipelineTask")  
    Dim thMainPipe As Microsoft.SqlServer.Dts.Runtime.TaskHost = _  
      CType(e, Microsoft.SqlServer.Dts.Runtime.TaskHost)  
    Dim dataFlowTask As MainPipe = CType(thMainPipe.InnerObject, MainPipe)  
  
    ' Create the source component.    
    Dim source As IDTSComponentMetaData100 = _  
      dataFlowTask.ComponentMetaDataCollection.New()  
    source.ComponentClassID = "DTSAdapter.OleDbSource"  
    Dim srcDesignTime As CManagedComponentWrapper = source.Instantiate()  
    srcDesignTime.ProvideComponentProperties()  
  
    ' Create the destination component.  
    Dim destination As IDTSComponentMetaData100 = _  
      dataFlowTask.ComponentMetaDataCollection.New()  
    destination.ComponentClassID = "DTSAdapter.OleDbDestination"  
    Dim destDesignTime As CManagedComponentWrapper = destination.Instantiate()  
    destDesignTime.ProvideComponentProperties()  
  
    ' Create the path.  
    Dim path As IDTSPath100 = dataFlowTask.PathCollection.New()  
    path.AttachPathAndPropagateNotifications(source.OutputCollection(0), _  
      destination.InputCollection(0))  
  
  End Sub  
  
End Module