Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-odbc by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group