パラメータを含むクエリで特定の文字を挿入しようとすると問題が発生します。特定のUnicode文字を挿入するとパラメータ化クエリが失敗する
次のクエリ(パラメータは関係ありません)を実行すると、すべて正常に動作します。
string insertQuery = "insert into 'testschema'.texttypestestobject(columnshortstring,columnlongstring)values('¬','test')";
DB2Command myCommand = new DB2Command(insertQuery, conn);
myCommand.ExecuteNonQuery();
ただし、次のようなクエリを実行すると失敗します。
string insertQuery = "insert into 'testschema'.texttypestestobject(columnshortstring,columnlongstring)values(@p0,@p1')";
DB2Command myCommand = new DB2Command(insertQuery, conn);
myCommand.Parameters.Add(new DB2Parameter("@p0", "¬"));
myCommand.Parameters.Add(new DB2Parameter("@p1", "test"));
myCommand.ExecuteNonQuery();
エラーがある:
Executing Sql 'insert into 'testschema'.texttypestestobject(columnshortstring,columnlongstring)values(@p0,@p1)'
with parameters '{¬},{ test}' exception 'IBM.Data.DB2.DB2Exception (0x80004005):
ERROR [IX000] [IBM][IDS/NT64] Code-set conversion function failed due to illegal
sequence or invalid value.
Informixサーバー11.70(64ビット)とクライアントSDK 3.50がインストールされ、そして正しく動作。データベースは、en_US.utf8またはcs_CZ.8859-2で作成されます。
「¬」(Unicode 172)のいずれかが失敗する文字の1つです。
このエラーが発生しましたか?何が原因だろうか?ドライバで実行する必要のある追加の設定がありますか?