我能夠用腳本組件做
1 - 我已經刪除了派生列
2 - 我已經創建了一個字符串變量來存放各種查詢用通配符字符串替換我需要從該行獲取的每個值。
3-我已經通過了這個變量與含有connecection串信息,以腳本組件
4-我添加一個新列的腳本組件
輸出列一個allong
5-增補using System.Data.OleDb;
6-創建2個變量:
string jourFerieQuery;
string dbcsoledbschema;
7更新了PostExecute()把我的SSIS變量的值到腳本變量:
public override void PostExecute()
{
base.PostExecute();
jourFerieQuery = Variables.jourFerieQuery;
dbcsoledbschema = Variables.dbcsoledbschema;
}
8新增了一個方法:
int GetData(string cs, string query)
{
OleDbConnection conn = new OleDbConnection(cs);
conn.Open();
OleDbCommand cmd = new OleDbCommand(query, conn);
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
conn.Close();
return (int)dt.Rows[0][0];
}
9-更新了Input0_ProcessInputRow( Input0Buffer行):
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
string query = jourFerieQuery.Replace("[1]", Row.CODDEVI).Replace("[2]", Row.DATCRBEZEROCONGE.ToString());
Row.Keep = GetData(dbcsoledbschema, query);
}
我的查詢返回的計數,這就是爲什麼我添加的方法返回一個int
我無法做到這一點,因爲查詢隨着每一行而改變,我不想加載完整的表格,因爲它很大。但是,如果可能的話,我有興趣看到如何 –
謝謝,這就是我最終做的。我列出了我已發佈的解決方案中的步驟 –