2013-04-26 81 views
2

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

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

回答

2

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

您需要使用本地(包级别)连接管理器,该连接管理器使用连接字符串的变量。该局部变量可以建立在项目参数值上。

也看到这个帖子了类似的情况: Expression Builder of Connection Manager not showing Variables

0

连接字符串缺少密码字段。我面临同样的问题,并添加引用变量/参数的密码字段解决了我的问题。还要确保Connection Manager的DelayValidation属性设置为“True”。