2

Dapper を使用して DB2 サーバーと通信しようとしています。DB2 サーバーは、そのままでは名前付きパラメーターをサポートしていません。各パラメーターのクエリには疑問符が必要です。Dapper でこれをサポートする方法はありますか? たぶん、Dapperはクエリを呼び出す前にすべての@Nameものを置き換えることができますか? ?もしそうなら、Dapper はパラメータを順番に生成しますか?

そうでない場合、新しい DB2 クライアント ドライバーは名前付きパラメーターをサポートしているようですが、デフォルトではオフになっています。オンにする方法がわかりません。db2cli.iniクライアントの [COMMON] セクションにそのパラメーターを追加しようとしましたが、動作は変わりませんでした。OleDBドライバー用でした。

更新: 次に、.NET ドライバーを試しました。それは変数名を解析しているようですが、実行時に奇妙なエラーが発生します:

{"エラー [07004] [IBM][DB2/NT64] SQL0313N EXECUTE ステートメント内の変数の数、OPEN ステートメント内の変数の数、またはパラメーター化されたカーソルの OPEN ステートメント内の引数の数が等しくありません必要な値の数。"}

私のステートメントは次のようになります。

INSERT INTO XD.ALERT (PERFORMANCE_ID, CATEGORY, TITLE, DESCRIPTION, DATETIME) VALUES(1234, :Level, :AlertID, :AlertDesc, :DateTime)

INSERT は EXECUTE としてカウントされますか? 私が知る限り、クエリには 4 つのパラメーターがあり、使用されているコマンド オブジェクトには 4 つのパラメーターがあります。(私はSqlMapper.cs直接使用しており、デバッガーですべてを見ることができます。)

4

1 に答える 1