2012-01-18 13 views
6

Mam problem podczas próby wstawienia niektórych znaków przez zapytanie z parametrami.Sparametryzowana kwerenda nie powiedzie się podczas wstawiania niektórych znaków Unicode

Po uruchomieniu następującego zapytania (bez parametrów) wszystko działa poprawnie.

string insertQuery = "insert into 'testschema'.texttypestestobject(columnshortstring,columnlongstring)values('¬','test')"; 
DB2Command myCommand = new DB2Command(insertQuery, conn); 
myCommand.ExecuteNonQuery(); 

Jednak jeśli uruchomię kwerendę w następujący sposób, nie powiedzie się.

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(); 

Błąd jest:

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. 

serwera Informix 11.70 (64 bit) i Client SDK 3.50 jest zainstalowany i działa poprawnie. Baza danych jest tworzona z en_US.utf8 lub cs_CZ.8859-2.

Jednym z nieudanych znaków jest "¬" (Unicode 172).

Czy ktoś widział ten błąd? Co może być przyczyną? Czy istnieje dodatkowa konfiguracja sterownika?

Odpowiedz

Powiązane problemy