[英]SSIS dynamic connection string
我正在嘗試為我的所有軟件包建立與DB的動態連接。 我正在嘗試通過使用腳本組件加載用戶定義的變量來實現這一目標。
我知道我也可以使用環境變量來執行此操作,問題是我的軟件包不是全部都將被調度,並且其中一些軟件包是通過Web服務或過程運行的,因此我不能使用調度的作業來執行此操作,並且使用@reference_id維護起來有點復雜。
我不知道如何循環變量。 我試過了
foreach(變量中的變量var)
但這不是那樣..
所以我在這里有兩個問題:
EG OLE DB源將返回兩行:
conName | conString
con1 | someConnection
con2 | someConnection
我的項目中有兩個用戶定義的變量-> con1和con2。 因此,遍歷我的變量-> foreach(variable),如果var.name = row.conName,則加載row.conString value。
終於,我設法做到了。 對於那些想要這樣做的人,這是我所做的:
public class ScriptMain : UserComponent
{
Dictionary<string, string> AllCons = new Dictionary<string, string>();
public override void PostExecute()
{
base.PostExecute();
string connectionString;
foreach (IDTSVariable100 obj in ReadWriteVariables)
{
if (AllCons.TryGetValue(obj.QualifiedName, out connectionString))
{
obj.Value = connectionString;
}
}
}
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
AllCons.Add("User::" + Row.ConName, Row.ConString);
}
}
我使用了Dictionary對象在Input0_ProcessInputRow
部分上存儲連接名稱和連接字符串。 然后,在PostExecute中,我使用IDTSVariable100
對象遍歷了所有用戶定義的變量。 然后檢查連接名稱是否等於變量,然后將連接字符串放入其中。
希望它可以幫助某人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.