Dela via


IDTSPath100.AttachPathAndPropagateNotifications Method

Establishes a path between two components and notifies the affected components.

Namespace:  Microsoft.SqlServer.Dts.Pipeline.Wrapper
Assembly:  Microsoft.SqlServer.DTSPipelineWrap (in Microsoft.SqlServer.DTSPipelineWrap.dll)

Syntax

'Declaration
Sub AttachPathAndPropagateNotifications ( _
    pIDTSOutput As IDTSOutput100, _
    pIDTSInput As IDTSInput100 _
)
'Usage
Dim instance As IDTSPath100
Dim pIDTSOutput As IDTSOutput100
Dim pIDTSInput As IDTSInput100

instance.AttachPathAndPropagateNotifications(pIDTSOutput, _
    pIDTSInput)
void AttachPathAndPropagateNotifications(
    IDTSOutput100 pIDTSOutput,
    IDTSInput100 pIDTSInput
)
void AttachPathAndPropagateNotifications(
    [InAttribute] IDTSOutput100^ pIDTSOutput, 
    [InAttribute] IDTSInput100^ pIDTSInput
)
abstract AttachPathAndPropagateNotifications : 
        pIDTSOutput:IDTSOutput100 * 
        pIDTSInput:IDTSInput100 -> unit 
function AttachPathAndPropagateNotifications(
    pIDTSOutput : IDTSOutput100, 
    pIDTSInput : IDTSInput100
)

Parameters

Remarks

In addition to establishing the flow of data between an IDTSOutput100 and an IDTSInput100 input, this method also notifies each component of the event by calling the OnInputPathAttached and OnOutputPathAttached methods of the component.

Examples

The following code example demonstrates how to create a new path and establish the path between two components.

using System;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime;

...

    public static void main( string []args )
    {
        // Create the package and add a data flow task.
        Package p = new Package();
        TaskHost th = p.Executables.Add("SSIS.Pipeline.2",null) as TaskHost;
        MainPipe m = th.InnerObject as MainPipe;

        // Create an OLE DB source component.
        IDTSComponentMetaData100 md = AddComponentToDataFlow( m , "DTSAdapter.OLEDBSource");
        IDTSComponentMetaData100 oledbSrc = m.ComponentMetaDataCollection.New();
        CManagedComponentWrapper100 srcWrp = oledbSrc.Instantiate();
        srcWrp.ProvideComponentProperties();

        // Create an OLE DB destination component.
        IDTSComponentMetaData100 oledbDest = AddComponentToDataFlow( m , "DTSAdapter.OLEDBDestination");
        IDTSComponentMetaData100 destWrp = oledbDest.ComponentMetaDataCollection.New();
        CManagedComponentWrapper100 destWrp = md.Instantiate();
        destWrp.ProvideComponentProperties();

        // Establish the path.
        IDTSPath100 path = m.PathCollection.New();
        path. AttachPathAndPropagateNotifications( oledbSrc.OutputCollection[0], oledbDest.InputCollection[0]);

}
public IDTSComponentMetaData100 AddComponentToDataFlow( MainPipe mp , string Component )
{
    if( mp != null )
    {
        IDTSComponentMetaData100 md = mp.ComponentMetaDataCollection.New();
        md.ComponentClassID = Component;
        CManagedComponentWrapper wrp = md.Instantiate();
        wrp.ProvideComponentProperties();

        return md;
    }
    throw new Exception( "DataFlow task does not exist.");
}
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper 
Imports Microsoft.SqlServer.Dts.Runtime

...

Public Shared Sub main(ByVal args As String()) 
 Dim p As Package = New Package 
 Dim th As TaskHost = CType(ConversionHelpers.AsWorkaround(p.Executables.Add("SSIS.Pipeline.2", Nothing), GetType(TaskHost)), TaskHost) 
 Dim m As MainPipe = CType(ConversionHelpers.AsWorkaround(th.InnerObject, GetType(MainPipe)), MainPipe) 
 Dim md As IDTSComponentMetaData100 = AddComponentToDataFlow(m, "DTSAdapter.OLEDBSource") 
 Dim oledbSrc As IDTSComponentMetaData100 = m.ComponentMetaDataCollection.New 
 Dim srcWrp As CManagedComponentWrapper100 = oledbSrc.Instantiate 
 srcWrp.ProvideComponentProperties 
 Dim oledbDest As IDTSComponentMetaData100 = AddComponentToDataFlow(m, "DTSAdapter.OLEDBDestination") 
 Dim destWrp As IDTSComponentMetaData100 = oledbDest.ComponentMetaDataCollection.New 
 Dim destWrp As CManagedComponentWrapper100 = md.Instantiate 
 destWrp.ProvideComponentProperties 
 Dim path As IDTSPath100 = m.PathCollection.New 
 path.AttachPathAndPropagateNotifications(oledbSrc.OutputCollection(0), oledbDest.InputCollection(0)) 
End Sub 

Public Function AddComponentToDataFlow(ByVal mp As MainPipe, ByVal Component As String) As IDTSComponentMetaData100 
 If Not (mp Is Nothing) Then 
   Dim md As IDTSComponentMetaData100 = mp.ComponentMetaDataCollection.New 
   md.ComponentClassID = Component 
   Dim wrp As CManagedComponentWrapper = md.Instantiate 
   wrp.ProvideComponentProperties 
   Return md 
 End If 
 Throw New Exception("DataFlow task does not exist.") 
End Function