1

AS / 400ソースからの1つの変数(WHERE句内)を使用してSELECTクエリを実行する必要があります。OLE DBドライバーを使用していますが、?の使用をサポートしていないようです。[エラーはHRESULTからの例外です:0x80040E10(Microsoft.SqlServer.SQLTaskConnectionsWrap)]

明らかに、これはSQLをプログラムで編集することで実行できるはずです(スクリプトタスクから推測しています)が、オブジェクトモデルのどこでデータフロータスクに関連するSQLを見つけることができるかわかりません。

人々が他の提案を完全に持っている場合、私もそれを受け入れます。クエリを送信する前に、クライアント側のパラメータを値で置き換えるパラメータ化されたクエリを実行する必要があります。ありがとう!

4

1 に答える 1

4

ここでの最善の策は、SQLステートメントを保持する変数を作成することです。

次に、変数を式として設定して、最初の試行で使用していた変数からwhere句を挿入します。

あなたの表現は次のようになります:

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

次に、データアクセスモードをOLEDBソースの変数からSQLコマンドに設定し、OLEDBソースの変数名を作成した変数に設定できます。

このようにして、where句変数を設定するためにすでに設定したすべてのロジックは、意図したとおりに機能します。

于 2012-10-04T16:57:16.947 に答える