2

SSIS パッケージを分析するツール (C#.Net) を使用しています。ここでは、Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100(dts.interop のクラス) クラスを使用して、データフロー タスク (MainPipe) を反復処理しています。以下のコードを見つけてください。

//Cast the Executable as a data flow
MainPipe pipe = (MainPipe)taskHost.InnerObject;
foreach (IDTSComponentMetaData100 comp in pipe.ComponentMetaDataCollection)
{
//Here i need
//1. Source details
//2. Destination details

}

IDTSComponentMetaData100XMLSource、OLEDB Destination などのデータフロー コンポーネントの一部のオブジェクトに各オブジェクトを型キャストすることは可能ですか? 可能であれば、送信元、送信先などを特定するにはどうすればよいですか?

それが不可能な場合は、これを達成するためのヒントを提供してください。

4

2 に答える 2

2

簡単に言うと、主に「データフロー コンポーネントのオブジェクト」がないIDTSComponentMetaData100ため、 を「データフロー コンポーネントのオブジェクト」にキャストする特に有用な方法はないということです。舞台裏では、SSIS はネイティブ .NET アプリケーションではなく、特にストック コンポーネント用のCOM駆動型アプリケーションです。これが、SSIS データフローをプログラムで作成するのが非常に困難な理由の一部です。(もう少し詳細な説明については、MSDN の「プログラムによるデータ フロー コンポーネントの追加 」を参照してください。)

つまり、IDTSComponentMetaData100インターフェイスはDTSObjectType列挙型のObjectTypeプロパティを公開します。データフローのソースには、、宛先、および変換があります。ObjectTypeOT_SOURCEADAPTEROT_DESTINATIONADAPTEROT_TRANSFORM

または、パッケージを .dtsx ファイルとして保存し、結果の XML 自体を解析することを調査できます。

于 2013-03-20T22:15:25.280 に答える