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
直接使用しており、デバッガーですべてを見ることができます。)