프로그래밍 방식으로 데이터 흐름 구성 요소 연결Connecting Data Flow Components Programmatically

데이터 흐름 태스크에 구성 요소를 추가한 후 해당 구성 요소를 연결하여 원본에서 변환을 거쳐 대상으로 이동하는 데이터 흐름을 나타내는 실행 트리를 만들 수 있습니다.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. 데이터 흐름의 구성 요소를 연결하려면 IDTSPath100 개체를 사용합니다.You use IDTSPath100 objects to connect the components in the data flow.

경로 만들기Creating a Path

새 메서드를 호출 하는 PathCollection 속성의는 MainPipe 인터페이스를 새 경로 만들고 컬렉션의 데이터 흐름 태스크의 경로에 추가 합니다.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. 이 메서드는 연결이 끊어진 새 IDTSPath100 개체를 반환합니다. 그러면 이 개체를 사용하여 두 구성 요소를 연결할 수 있습니다.This method returns a new, disconnected IDTSPath100 object, which you then use to connect two components.

경로를 연결하고 연결된 경로에 참여하는 구성 요소에 해당 구성 요소가 연결되었음을 알리려면 AttachPathAndPropagateNotifications 메서드를 호출합니다.Call the AttachPathAndPropagateNotifications method to connect the path and to notify the components participating in the path that they have been connected. 이 메서드는 업스트림 구성 요소의 IDTSOutput100과 다운스트림 구성 요소의 IDTSInput100을 매개 변수로 받아들입니다.This method accepts an IDTSOutput100 of the upstream component and an IDTSInput100 of the downstream component as parameters. 기본적으로 구성 요소의 ProvideComponentProperties 메서드를 호출하면 입력이 있는 구성 요소에 대한 단일 입력과 출력이 있는 구성 요소에 대한 단일 출력이 만들어집니다.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. 다음 예에서는 원본의 이 기본 출력과 대상의 입력을 사용합니다.The following example uses this default output of the source and input of the destination.

다음 단계Next Step

다음 단계는 다음 항목에서 설명 하는 다운스트림 구성 요소에서 입력된 열에 매핑하는 두 구성 요소 사이의 경로 설정한 후 입력 열을 프로그래밍 방식 선택합니다.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.

예제Sample

다음 코드 예제에서는 두 구성 요소 간의 경로를 설정하는 방법을 보여 줍니다.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  

참고 항목See Also

입력된 열을 프로그래밍 방식으로 선택Selecting Input Columns Programmatically