如何使用脚本任务更改OLEDB连接信息?

时间:2012-08-15 11:29:05

标签: ssis

我有一个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());

我需要更改此连接信息(比如我想更改初始目录等),并希望此更改的信息保留在整个包中。怎么做?

1 个答案:

答案 0 :(得分:1)

我会通过结合使用

来解决这个问题
  • 首先,我会定义一个SSIS变量,如here
  • 所示
  • 我会将连接字符串设为表达式here
  • 的表达式
  • 并通过脚本更改变量here

第一步相对容易:

打开Variables选项卡(右键单击控制流内部并单击Variables)并添加所需的变量(可能是连接字符串的String)

使用新定义的变量创建表达式。 使用第三个链接中的代码在运行时更改值。

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

Dts.TaskResult = ScriptResults.Success