Discovering Data Flow Components Programmatically

After you have added a data flow task to a package, your next step may be to determine what data flow components are available for your use. You can programmatically discover the data flow sources, transformations, and destinations that are installed and available on the local computer. For information about adding a data flow task to the package, see Adding the Data Flow Task Programmatically.

Discovering Components

The Application class provides the PipelineComponentInfos collection, which contains a PipelineComponentInfo object for each component correctly installed on the local computer. Each PipelineComponentInfo contains information about a component such as its name, description, and creation name. You can use the value returned in the CreationName property to set the ComponentClassID property of the IDTSComponentMetaData90 when you add a component to a package.

Next Step

After discovering available components, the next step is to add and configure the components, which is discussed in the next topic, Adding Data Flow Components Programmatically.

Sample

The following code sample shows how to enumerate the PipelineComponentInfos collection of the Application object to programmatically discover the data flow components available on the local computer.

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

namespace Microsoft.SqlServer.Dts.Samples
{
  class Program
  {
    static void Main(string[] args)
    {
      Application application = new Application();
      PipelineComponentInfos componentInfos = application.PipelineComponentInfos;

      foreach (PipelineComponentInfo componentInfo in componentInfos)
      {
        Console.WriteLine("Name: " + componentInfo.Name + "\n" +
          " CreationName: " + componentInfo.CreationName + "\n");
      }
      Console.Read();
    }
  }
}
Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

  Sub Main()

    Dim application As Application = New Application()

    Dim componentInfos As PipelineComponentInfos = application.PipelineComponentInfos

    For Each componentInfo As PipelineComponentInfo In componentInfos
      Console.WriteLine("Name: " & componentInfo.Name & vbCrLf & _
        " CreationName: " & componentInfo.CreationName & vbCrLf)
    Next

    Console.Read()

  End Sub

End Module

Change History

Release History

17 July 2006

Changed content:
  • Replaced code samples.

See Also

Concepts

Adding Data Flow Components Programmatically

Help and Information

Getting SQL Server 2005 Assistance