Connessione dei componenti del flusso di dati a livello di programmazioneConnecting Data Flow Components Programmatically

Dopo avere aggiunto componenti all'attività Flusso di dati, connetterli per creare un albero di esecuzione che rappresenti il flusso di dati dalle origini attraverso le trasformazioni alle destinazioni.After you have added components to the data flow task, you connect them to create an execution tree that represents the flow of data from sources through transformations to destinations. Utilizzare oggetti IDTSPath100 per connettere i componenti nel flusso di dati.You use IDTSPath100 objects to connect the components in the data flow.

Creazione di un percorsoCreating a Path

Chiamare il metodo di nuovo il PathCollection proprietà del MainPipe interfaccia per creare un nuovo percorso e aggiungerlo alla raccolta di percorsi nell'attività flusso di dati.Call the New method of the PathCollection property of the MainPipe interface to create a new path and add it to the collection of paths in the data flow task. Questo metodo restituisce un nuovo oggetto IDTSPath100 disconnesso, che verrà quindi utilizzato per connettere due componenti.This method returns a new, disconnected IDTSPath100 object, which you then use to connect two components.

Chiamare il metodo AttachPathAndPropagateNotifications per connettere il percorso e notificare ai componenti partecipanti nel percorso che sono stati connessi.Call the AttachPathAndPropagateNotifications method to connect the path and to notify the components participating in the path that they have been connected. Questo metodo accetta IDTSOutput100 del componente a monte e IDTSInput100 del componente a valle come parametri.This method accepts an IDTSOutput100 of the upstream component and an IDTSInput100 of the downstream component as parameters. Per impostazione predefinita, la chiamata al metodo ProvideComponentProperties del componente crea un singolo input per i componenti che includono input e un singolo output per i componenti che includono output.By default, the call to the component's ProvideComponentProperties method creates a single input for components that have inputs, and a single output for components that have outputs. Nell'esempio seguente vengono utilizzati l'output predefinito dell'origine e l'input predefinito della destinazione.The following example uses this default output of the source and input of the destination.

Passaggio successivoNext Step

Dopo aver stabilito un percorso tra due componenti, il passaggio successivo consiste nel mapping delle colonne di input nel componente a valle, descritto nell'argomento successivo, selezione Input le colonne a livello di codice.After you establish a path between two components, the next step is to map input columns in the downstream component, which is discussed in the next topic, Selecting Input Columns Programmatically.

EsempioSample

Nell'esempio di codice seguente è illustrato come stabilire un percorso tra due componenti.The following code sample shows how to establish a path between two components.

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  

Vedere ancheSee Also

Selezionare le colonne di Input a livello di codiceSelecting Input Columns Programmatically