2013-04-26 157 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」。