Łączenie składników przepływu danych programowo
Po dodaniu składników do zadanie przepływ danych, podłącz je, tworząc drzewo wykonania, reprezentującą przepływ danych ze źródeł poprzez przekształceń do miejsc docelowych.Możesz użyć IDTSPath100 obiekty połączyć składniki przepływ danych.
Tworzenie ścieżki
Wywołanie New metoda PathCollection Właściwość MainPipe interfejs, aby utworzyć nową ścieżka i dodać go do kolekcja ścieżka w zadanie przepływ danych.Ta metoda zwraca nowy, rozłączonych IDTSPath100 obiekt, który można następnie użyć do połączenia dwóch składników.
Wywołanie AttachPathAndPropagateNotifications metoda połączyć ścieżka oraz powiadamianie składników uczestniczących w ścieżce, że zostaną one podłączone.Ta metoda przyjmuje IDTSOutput100 składnika nadrzędnego i IDTSInput100 podrzędne składnika jako parametry.Domyślnie wywołanie składnika ProvideComponentProperties Metoda tworzy pojedynczy wprowadzania dla składników, które mają wejść i jednego wyjście dla składników, które mają wyjść.W poniższym przykładzie użyto tego domyślne dane wyjściowe źródło i wprowadzania obiekt docelowy.
Następny krok
Po ustanowieniu ścieżka między dwoma składnikami, następnym krokiem jest mapowanie kolumn wprowadzania niższego rzędu składnik, który omówiono w temacie dalej Wybieranie kolumn wprowadzania programowo.
Przykład
Poniższy przykładowy kod ilustruje ustanowienia ścieżka między dwoma składnikami.
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
|