2017-07-31 113 views
2

我正在研究一個2008 SSIS,我需要讀取一個平面文件以便可以訪問其內容(具有3個目錄路徑),因此可以存儲這3個路徑變成變量。SSIS在腳本任務中讀取平面文件連接

根據我正在開發的實例(dev,qa,production),平面文件將位於3個不同的服務器中,所以我不能將路徑寫入變量,因爲我必須重寫每當我需要在不同的實例中部署解決方案時,這個價值就會得到體現。

我過去試過的一些東西是使用Directory.GetCurrentDirectory()讀取平面文件,但我無法調試,並且在VS2008上使用F5/run包無效讀它不能在VS上工作,但一旦你部署了包,它工作正常,但我沒有辦法證明它,但嘗試)。因此,我發現,如果我可以讀取保存在平面文件連接上的路徑並將其保存在字符串變量中,那麼一旦部署包,我就可以修改.config文件中的連接字符串值,並且像普通的平面文件一樣讀取其內容。

我的問題是,我無法弄清楚如何讀取連接字符串值,並且我找不到任何指向正確方向的內容。

在此先感謝。

回答

1

因爲似乎沒有什麼工作,我最後做了以下內容:

  • 插入我需要的值在數據庫中的參數表
  • 生成的執行SQL任務
  • 分配了任務的結果的變量

我花了整整一天,但我終於明白了。

我跟着this線索作爲參考。

1

你想要的東西就像一個C#腳本任務。您可以在那裏動態修改連接字符串。在腳本中,您可以修改其值(如果我沒記錯的話)Dts.Connections.["YourConnection"].ConnectionString

1

從腳本任務訪問連接管理器的信息,您可以使用Dts.Connections財產,只是聲明瞭一個字符串變量,並讀取ConnectionString屬性:

string cs; 
cs = Dts.Connections["myFlatFileConnection"].ConnectionString; 

參考:

根據這一Microsoft Docs article

「Connection manager prov ide訪問已在包中配置的數據源。瞭解更多信息。 腳本任務可以通過Dts對象的Connections屬性訪問這些連接管理器。在Connections集合每個連接管理器存儲有關如何連接到底層數據源信息「Read more (+examples)

+0

我試圖做到這一點,但它沒有奏效。不管怎麼說,多謝拉 – Rambo3