プログラムによるデータ フロー コンポーネントの検出
データ フロー タスクをパッケージに追加したら、次の手順として、使用できるようにするデータ フロー コンポーネントを決定できます。ローカル コンピューター上にインストールされ、使用可能なデータ フローの変換元、変換、および変換先は、プログラムによって検出できます。データ フロー タスクをパッケージに追加する方法については、「プログラムによるデータ フロー タスクの追加」を参照してください。
コンポーネントの検出
Application クラスには、ローカル コンピューター上に正しくインストールされたコンポーネントごとに PipelineComponentInfo オブジェクトを格納する、PipelineComponentInfos コレクションが用意されています。各 PipelineComponentInfo には、コンポーネントの名前、説明、および作成名など、コンポーネントに関する情報が含まれています。コンポーネントをパッケージに追加したら、CreationName プロパティの戻り値を使用して、IDTSComponentMetaData100 の ComponentClassID プロパティを設定できます。
次の手順
使用可能なコンポーネントを検出したら、次の手順として、コンポーネントを追加して構成します。この手順については、次のトピック「プログラムによるデータ フロー コンポーネントの追加」で説明します。
サンプル
次のコード例では、Application オブジェクトの PipelineComponentInfos コレクションを列挙し、ローカル コンピューターで使用可能なデータ フロー コンポーネントをプログラムによって検出する方法を示します。このサンプルでは、Microsoft.SqlServer.ManagedDTS アセンブリへの参照が必要です。
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
外部リソース
sqlis.com のブログ「CreationName for SSIS 2008 とプログラムによるコンポーネントの追加」(http://sqlis.com/sqlis/post/CreationName-2008.aspx)
blogs.msdn.com のブログ「EzAPI – 代替パッケージの作成 API」
|