2012-01-18 11 views
6

Ho un problema quando si tenta di inserire determinati caratteri tramite query con parametri.La query parametrizzata non riesce quando si inseriscono determinati caratteri Unicode

Quando si esegue la seguente query (nessun parametro coinvolto), tutto funziona correttamente.

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

Tuttavia, se si esegue la query come la seguente, non riesce.

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

L'errore è:

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 server di 11.70 (64 bit) e Client SDK 3.50 è installato e funziona correttamente. Il database viene creato con en_US.utf8 o cs_CZ.8859-2.

Uno dei caratteri che non riesce è "¬" (Unicode 172).

Qualcuno ha visto questo errore? Quale potrebbe essere la causa? C'è qualche configurazione aggiuntiva che deve essere eseguita sul driver?

risposta

Problemi correlati