Re: Another post 7.3.02 bug Was: ODBC and encodings problem

From: "Ben Trewern" <ben(dot)trewern(at)_nospam_mowlem(dot)com>
To: pgsql-odbc(at)postgresql(dot)org
Subject: Re: Another post 7.3.02 bug Was: ODBC and encodings problem
Date: 2005-04-25 09:07:41
Message-ID: d4ic0u$1510$1@news.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Thanks for your reply,

This is approximately how I understood it. I still do see a problem:

Using SQL_ASCII character set on the server.

- Connecting with ZeosDbo and Delphi I get the correct representation of
signs.
- Connecting with pgAdmin III (via libpq) I get the same.
- Connecting with pgODBC version 7.03.0208 or before I get the same.
- When I connect with the latest pgODBC version (08.00.0003) I get the
results as stated previously.

As I understand it, the ODBC driver shouldn't try to decode data from the
server in this situation, but it must do, as when I look into the mylog file
the data returned from the database is correct.

Ben

"Marko Ristola" <marko(dot)ristola(at)kolumbus(dot)fi> wrote in message
news:4269ED02(dot)80503(at)kolumbus(dot)fi(dot)(dot)(dot)
>
> I checked the ODBC 8.x CVS HEAD (source code). I found out, that it seems
> to work nicely
> on Windows. I don't know anything about Linux ODBC driver side.
>
> If the backend uses SQL_ASCII charset, it means, that the backend
> does not know the charset of the non ASCII characters.
> Pound character does not belong to those characters.
>
> Correct way of fixing the bug is to tell for the backend server, that what
> charset is
> used there. LATIN1 or UTF-8 are good alternatives.
>
> So, if switching into LATIN1 as the backend charset works nicely, the ODBC
> driver
> is okay: according to Philippe Lang, the charset switching works!
>
> So the user must do an initdb.
>
> It is very good, that the current ODBC driver handles data conversions
> on the client side in Windows.
>
> I found out this from the source code of CVS HEAD:
>
> The ODBC driver uses ANSI C API for client charset. So ANSI C charset
> selection
> (a C standard) works on Windows applications. This means, that C and C++
> programs
> do work. Other languages should work also.
>
> With Windows applications, if an application uses different charsets in
> different threads,
> the "global" charset selection applies, not one thread's private charset
> selection.
>
> Regards,
> Marko Ristola
>
> Ben Trewern wrote:
>
>>Does anyone have enough knowledge of the pgODBC driver to see where this
>>bug is coming from? I've been looking through the code but can't get a
>>handle on how it is structured. Are there any documents available which
>>could give me a starting point on kacking the driver. I'm not a C coder
>>so this is all a learning experience.
>>
>>Ben
>>
>>"Ben Trewern" <ben(dot)trewern(at)mowlem(dot)com> wrote in message
>>news:d3ohub$och$1(at)news(dot)hub(dot)org(dot)(dot)(dot)
>>
>>>I've looked at the mylog outputs from pgODBC in this case and they seem
>>>to show the driver (at some point) returns the correct values. How these
>>>are then translated and shown in MS Access is beyond me. I'll keep
>>>investigating though.
>>>
>>>[investigated some more]I just tried pgODBC 7.03.0208 and I get the
>>>correct result. Seems it's another bug that's been introduced after this
>>>time. I'll look to see which version is the earliest to cause this
>>>problem.
>>>
>>>Ben
>>>
>>>""Philippe Lang"" <philippe(dot)lang(at)attiksystem(dot)ch> wrote in message
>>>news:6C0CF58A187DA5479245E0830AF84F42143227(at)poweredge(dot)attiksystem(dot)ch(dot)(dot)(dot)
>>>
>>>>There is a project of an ODBC driver that uses libpq at Command
>>>>Prompt...
>>>>
>>>>This is an answer I got a few weeks ago.
>>>>
>>>>
>>>>>Our driver is sorely outdated. We are currently working on a brand new
>>>>>(as in from scratcH) open source driver sourced from libpq.
>>>>>
>>>>>Sincerely,
>>>>>
>>>>>Joshua D. Drake
>>>>>Command Prompt, Inc.
>>>>>
>>>>We are all looking forward to trying it. But licencing and deadlines are
>>>>not really clear at the moment.
>>>>
>>>>Philippe
>>>>
>>>>
>>>>-----Message d'origine-----
>>>>De : pgsql-odbc-owner(at)postgresql(dot)org
>>>>[mailto:pgsql-odbc-owner(at)postgresql(dot)org] De la part de Ben Trewern
>>>>Envoy : vendredi, 15. avril 2005 13:15
>>>> : pgsql-odbc(at)postgresql(dot)org
>>>>Objet : Re: [ODBC] ODBC and encodings problem
>>>>
>>>>Does this mean I have to initdb my cluster again? I tried to do this on
>>>>windows with 'initdb --encoding=LATIN1' but it hang on 'selecting
>>>>default max_connections ...' I'm looking into this now. Not sure if
>>>>it's an encoding problem or something else.
>>>>
>>>>What I was wondering was, why does the ODBC driver act differently to
>>>>Zeos or pgAdmin III? Zeos and pgAdmin both use the libpq client library
>>>>which I suppose is the standard. Is there a way the ODBC driver could
>>>>be hacked to give the same response as libpq or am I simplifying this
>>>>too much.
>>>>
>>>>Ben
>>>>
>>>>""Philippe Lang"" <philippe(dot)lang(at)attiksystem(dot)ch> wrote in message
>>>>news:6C0CF58A187DA5479245E0830AF84F4214321E(at)poweredge(dot)attiksystem(dot)ch(dot)(dot)(dot)
>>>>
>>>>>Hi,
>>>>>
>>>>>I don't know exactly which encoding you need, but at least for french,
>>>>>encoding a datatabase in LATIN1 solves the problem...
>>>>>
>>>>>Bye
>>>>>
>>>>>Philippe
>>>>>
>>>>>-----Message d'origine-----
>>>>>De : pgsql-odbc-owner(at)postgresql(dot)org
>>>>>[mailto:pgsql-odbc-owner(at)postgresql(dot)org] De la part de Ben Trewern
>>>>>Envoy : jeudi, 14. avril 2005 21:20 : pgsql-odbc(at)postgresql(dot)org
>>>>>Objet : [ODBC] ODBC and encodings problem
>>>>>
>>>>>Hi all,
>>>>>
>>>>>Using PostgreSQL 8.0.1 on Linux
>>>>>
>>>>>I've got a database with an encoding of SQL_ASCII. I've accessed it
>>>>>with pgAdmin III and Delphi through ZeosDBO and had no problems. Now
>>>>>I've been using MS Access XP with pgODBC version 8.00.0101 to connect
>>>>>to it with some success till now. I've noticed that any field with a
>>>>> sign in it is not displaying correctly, I get 'WO ,658.06' instead
>>>>>of 'WO 4,658.06'
>>>>>and 'WO 60.56' instead of 'WO 128.88' etc. I assume it's something
>>>>>to do with the encodings used server side or client side.
>>>>>
>>>>>Any ideas how to fix this?
>>>>>
>>>>>Regards,
>>>>>
>>>>>Ben
>>>>>
>>>>>
>>>>>
>>>>>---------------------------(end of
>>>>>broadcast)---------------------------
>>>>>TIP 8: explain analyze is your friend
>>>>>
>>>>>
>>>>>
>>>>>---------------------------(end of
>>>>>broadcast)---------------------------
>>>>>TIP 5: Have you checked our extensive FAQ?
>>>>>
>>>>> http://www.postgresql.org/docs/faq
>>>>>
>>>>>
>>>>
>>>>---------------------------(end of broadcast)---------------------------
>>>>TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>>>>
>>>>
>>>>
>>>>---------------------------(end of broadcast)---------------------------
>>>>TIP 4: Don't 'kill -9' the postmaster
>>>>
>>>>
>>>
>>
>>
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 4: Don't 'kill -9' the postmaster
>>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>

In response to

Browse pgsql-odbc by date

  From Date Subject
Next Message Joel Fradkin 2005-04-25 13:08:52 Re: [PERFORM] Joel's Performance Issues WAS : Opteron vs Xeon
Previous Message Dave Page 2005-04-25 08:11:23 Re: Patch for Bug No: 1254