3

OLEDB 接続があります。この接続をスクリプトで動的に変更したいと考えています。次のコードを使用して、この OLEDB 接続の情報を取得しています。

ConnectionManager cm = Dts.Connections["VendorDB"];
        DbConnection conn = null;
        if (cm.CreationName == "OLEDB")
        {
            Wrap.IDTSConnectionManagerDatabaseParameters100 cmParams =
            cm.InnerObject as Wrap.IDTSConnectionManagerDatabaseParameters100;
            conn = cmParams.GetConnectionForSchema() as DbConnection;
        }
        else
        {
            conn = cm.AcquireConnection(null) as DbConnection;
        }

        if (conn.State == ConnectionState.Closed)
        {
            conn.Open();
        }
        MessageBox.Show(conn.ConnectionString.ToString());

この接続情報を変更する必要があり (初期カタログを変更したいなど)、この変更された情報をパッケージ全体で保持したいと考えています。その方法は?

4

1 に答える 1

1

私は物事の組み合わせを使用してこの問題を解決します

  • 最初に、ここに示されているように SSIS 変数を定義します
  • ここに示されているように、接続文字列を式にします
  • ここに示されているように、スクリプトを介して変数を変更します

最初のステップは比較的簡単です。

[変数] タブを開き (制御フロー内を右クリックして [変数] をクリック)、必要な変数を追加します (接続文字列の文字列など)。

新しく定義した変数を使用して式を作成します。3 番目のリンクのコードを使用して、実行時に値を変更します。

Dts.Variables("myVariable").Value = @"C:\Test2.txt";

Dts.TaskResult = ScriptResults.Success
于 2013-01-14T09:32:54.997 に答える