conversion problem

Поиск
Список
Период
Сортировка
Искать
От
Andreas Pflug
Тема
conversion problem
Дата
Msg-id
41DADB1B.70402@pse-consulting.de
Список
When trying to insert strings with German umlaute (e.g. "täglich") into 
a text or varchar column, the server throws the message
	invalid byte sequence for encoding "UNICODE": 0xe4656c


This results from ResolveOneParam not converting the string to UTF-8.
Digging into this, I found that 
ipdopts->parameters[param_number].SQLType contains 0xffff, instead of 
something sensible for PGType=0x19 (text).

The attached patch works as hotfix for me, but is certainly only a 
workaround for a problem buried deeper because SQLType seems bogus to me.

OTOH, I don't understand why the switch(param_pgtype) was invented at 
all (the original patch I posted more than a year ago didn't have it), 
because any string coming from the app will probably need conversion to 
UTF-8 anyway.

Regards,
Andreas
Index: convert.c
===================================================================
RCS file: /usr/local/cvsroot/psqlodbc/psqlodbc/convert.c,v
retrieving revision 1.121
diff -u -r1.121 convert.c
--- convert.c	30 Jul 2004 21:08:12 -0000	1.121
+++ convert.c	4 Jan 2005 17:49:29 -0000
@@ -2621,6 +2621,7 @@
 				case SQL_WCHAR:
 				case SQL_WVARCHAR:
 				case SQL_WLONGVARCHAR:
+                case (Int2)0xffff:
 					if (SQL_NTS == used)
 						used = strlen(buffer);
 					allocbuf = malloc(WCLEN * (used + 1));

В списке pgsql-odbc по дате отправления
От: Pailloncy Jean-Gerard
Дата:
Сообщение: iodbc & OpenBSD
От: laurie.burrow@powerconv.alstom.com
Дата:
FAQ