conversion problem - Mailing list pgsql-odbc

From Andreas Pflug
Subject conversion problem
Date
Msg-id 41DADB1B.70402@pse-consulting.de
Whole thread Raw
List pgsql-odbc
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 by date:

Previous
From: Pailloncy Jean-Gerard
Date:
Subject: iodbc & OpenBSD
Next
From: laurie.burrow@powerconv.alstom.com
Date:
Subject: 'No Current Record' using Access linked to Postgres via ODBC - A possible resolution