2012-10-04 40 views
1

我需要使用AS/400源中的一個變量(在WHERE子句中)執行SELECT查詢。我有一個OLE DB驅動程序,但它似乎不支持使用? [錯誤是從HRESULT異常:0x80040E10(Microsoft.SqlServer.SQLTaskConnectionsWrap)]以編程方式編輯數據流任務中的SQL(SSIS 2005)

顯然,這應該是可編程編輯我的SQL(我從腳本任務猜測),但我不知道在對象模型中,我可以找到與我的數據流任務相關的SQL。

如果人們完全有其他建議,我也可以這樣做,我只需要在發送查詢之前執行參數化查詢,其中值將替換客戶端上的參數。謝謝!

回答

4

這裏最好的辦法是創建一個變量來保存你的sql語句。

然後將該變量設置爲表達式,以便從第一次嘗試使用的變量中插入where子句。

表達式將類似於:

="select col1, col2 from table_name where col3 = " + @[User::WhereClause] 

然後您可以將數據訪問模式從變量在OLEDB源設置爲SQL命令,並在OLEDB源設置的變量名創建的變量。

這樣,您已經設置的用於設置where子句變量的所有邏輯仍將按照您的設計工作。

+0

不幸的是,我沒有足夠的代表upvote你的答案,但它的工作完美。謝謝你的幫助! –

+0

啊,完成了!對不起,還在搞清楚這個地方是如何工作的。 –