使用参数的SSIS 2012动态OLE DB ConnectionString

时间:2013-04-26 15:51:55

标签: connection-string oledb ssis-2012

我有一个项目,我需要将其部署到不在我们网络中的服务器,因此不会知道某些属性,例如服务器和数据库名称。所以我在“Project.params”区域中设置了一个参数。在这个字符串参数中我放置了:“Data Source =”+ @ [$ Project :: ServerName] +“; User ID =”+ @ [$ Project :: UserName] +“; Initial Catalog =”+ @ [$ Project: :InitialCatalog]; +“Provider = SQLNCLI11.1; Persist Security Info = True;”我在尝试之前复制了我设置的原始连接。

当我在项目表达式(对于连接字符串)中将项目级OLEDB连接管理器设置为此参数时,我得到的字符串就像我输入的那样,而不是其他参数的值。换句话说,当评估时,表达式如上所示。这样做会使包中使用该连接的所有组件无效。关于我做错了什么的任何想法?提前谢谢。

2 个答案:

答案 0 :(得分:2)

您不能在单个参数化OLE DB连接管理器中使用多个项目参数。此外,您无法创建动态构建在其他项目参数上的项目参数,因为它们在脚本任务中是只读的。

您需要使用本地(包级)连接管理器,该连接管理器使用变量作为其连接字符串。该局部变量可以基于项目参数值构建。

另请参阅此帖子了解类似情况: Expression Builder of Connection Manager not showing Variables

答案 1 :(得分:0)

您的连接字符串缺少密码字段。我遇到了同样的问题,添加引用变量/参数的密码字段为我解决了问题。还要确保将DelayValidation属性设置为" True"对于Connection Manager。