logo       
Google Custom Search
    AddThis Social Bookmark Button

conversion problem: msg#00009

Subject: conversion problem
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));

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>