【问题标题】:Get connection string in SSIS Script Task在 SSIS 脚本任务中获取连接字符串
【发布时间】:2018-12-18 17:03:43
【问题描述】:

在我的 SSIS 包中,我有一个名为 LAMP 的包级连接管理器,现在我想在我的脚本任务中访问它。我试图用它来获取连接字符串:

var conn = Dts.Connections["LAMP"].AcquireConnection(Dts.Transaction) as string;

但返回的是一个空字符串。是否可以拉取包级连接字符串?

这是一个 OLEDB 连接管理器,使用 Native OLE DB\SQL Server Native Client 11.0 提供程序。

【问题讨论】:

    标签: ssis


    【解决方案1】:

    坦率地说,你是在倒退。创建一个变量来存储连接字符串。然后将连接字符串作为 ConnectionString 表达式分配给 Lamp 连接管理器,同时还从脚本任务编辑器中读取连接字符串变量。以下步骤应该会有所帮助:

    1. 创建一个变量调用 ConnectionStringLamp
    2. 将连接管理器中的连接字符串输入到变量中
    3. 单击 Lamp 的连接管理器。在“属性”窗口(右下角)中,单击“表达式”的省略号 (...)
    4. 选择 ConnectionString,然后分配变量 ConnectionStringLamp
    5. 在“表达式”构建器中验证它以确保填充值
    6. 在脚本任务编辑器中,确保将 ConnectionStringLamp 选择为只读(如果您打算更改它,则选择读写)。
    7. 在您的代码中:

      string strConnectionStringLamp = (string) Dts.Variables["ConnectionStringLamp"].Value;

    【讨论】:

    • 有没有办法将项目级连接管理器也指向表达式?
    • @Gargoyle 是的。创建项目级连接管理器时,连接管理器将显示在屏幕底部的“连接管理器”选项卡中。当您在此处单击它时,您将能够填充 ConnectionString。由于某种原因,当您从解决方案资源管理器中单击连接管理器时,不会填充属性窗口。
    • 如果我右键单击我的设计并选择变量,我肯定会看到 LampConnectionString 作为名称,范围为包名称,具有字符串数据类型和值集。但是,当我在脚本任务中将其作为变量进行查询时,它说该键不存在。我看到定义了 6 个变量,但如果我打印 Dts.Variables 的计数,它只会显示 4。想法?
    • 抱歉,我错过了第 6 步。现在它运行良好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多