Обсуждение: ODBC and encodings problem

Поиск
Список
Период
Сортировка

ODBC and encodings problem

От
"Ben Trewern"
Дата:
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



Re: ODBC and encodings problem

От
"Philippe Lang"
Дата:
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@postgresql.org [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
Envoyé : jeudi, 14. avril 2005 21:20
À : pgsql-odbc@postgresql.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
hadno 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
sideor client side. 

Any ideas how to fix this?

Regards,

Ben



---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend



Re: ODBC and encodings problem

От
"Ben Trewern"
Дата:
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.lang@attiksystem.ch> wrote in message
news:6C0CF58A187DA5479245E0830AF84F4214321E@poweredge.attiksystem.ch...
> 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@postgresql.org
> [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
> Envoy� : jeudi, 14. avril 2005 21:20
> � : pgsql-odbc@postgresql.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
>



Re: ODBC and encodings problem

От
"Philippe Lang"
Дата:
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@postgresql.org [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
Envoyé : vendredi, 15. avril 2005 13:15
À : pgsql-odbc@postgresql.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
hangon 'selecting default max_connections ...'  I'm looking into this now.  Not sure if it's an encoding problem or
somethingelse. 

What I was wondering was, why does the ODBC driver act differently to Zeos or pgAdmin III?  Zeos and pgAdmin both use
thelibpq client library which I suppose is the standard.  Is there a way the ODBC driver could be hacked to give the
sameresponse as libpq or am I simplifying this too much. 

Ben

""Philippe Lang"" <philippe.lang@attiksystem.ch> wrote in message
news:6C0CF58A187DA5479245E0830AF84F4214321E@poweredge.attiksystem.ch...
> 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@postgresql.org
> [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
> Envoyé : jeudi, 14. avril 2005 21:20 À : pgsql-odbc@postgresql.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@postgresql.org



Re: ODBC and encodings problem

От
"Ben Trewern"
Дата:
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.lang@attiksystem.ch> wrote in message
news:6C0CF58A187DA5479245E0830AF84F42143227@poweredge.attiksystem.ch...
> 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@postgresql.org
> [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
> Envoy� : vendredi, 15. avril 2005 13:15
> � : pgsql-odbc@postgresql.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.lang@attiksystem.ch> wrote in message
> news:6C0CF58A187DA5479245E0830AF84F4214321E@poweredge.attiksystem.ch...
>> 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@postgresql.org
>> [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
>> Envoy� : jeudi, 14. avril 2005 21:20 � : pgsql-odbc@postgresql.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@postgresql.org
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>



Re: ODBC and encodings problem

От
"Philippe Lang"
Дата:
Hi,

I have noticed a strange bug starting with version 7.03.0209 too.

I use version 7.03.0208 all the time, and it works fine for me, on NT, 2000 and XP. I suggest you use this version
too...

-----Message d'origine-----
De : pgsql-odbc-owner@postgresql.org [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
Envoyé : vendredi, 15. avril 2005 16:12
À : pgsql-odbc@postgresql.org
Objet : Re: [ODBC] ODBC and encodings problem

I've looked at the mylog outputs from pgODBC in this case and they seem to show the driver (at some point) returns the
correctvalues.  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
introducedafter this time.  
I'll look to see which version is the earliest to cause this problem.

Ben

""Philippe Lang"" <philippe.lang@attiksystem.ch> wrote in message
news:6C0CF58A187DA5479245E0830AF84F42143227@poweredge.attiksystem.ch...
> 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@postgresql.org
> [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
> Envoyé : vendredi, 15. avril 2005 13:15 À : pgsql-odbc@postgresql.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.lang@attiksystem.ch> wrote in message
> news:6C0CF58A187DA5479245E0830AF84F4214321E@poweredge.attiksystem.ch...
>> 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@postgresql.org
>> [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
>> Envoyé : jeudi, 14. avril 2005 21:20 À : pgsql-odbc@postgresql.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@postgresql.org
>
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>



---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster



Another post 7.3.02 bug Was: ODBC and encodings problem

От
"Ben Trewern"
Дата:
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.trewern@mowlem.com> wrote in message
news:d3ohub$och$1@news.hub.org...
> 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.lang@attiksystem.ch> wrote in message
> news:6C0CF58A187DA5479245E0830AF84F42143227@poweredge.attiksystem.ch...
>> 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@postgresql.org
>> [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
>> Envoy� : vendredi, 15. avril 2005 13:15
>> � : pgsql-odbc@postgresql.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.lang@attiksystem.ch> wrote in message
>> news:6C0CF58A187DA5479245E0830AF84F4214321E@poweredge.attiksystem.ch...
>>> 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@postgresql.org
>>> [mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
>>> Envoy� : jeudi, 14. avril 2005 21:20 � : pgsql-odbc@postgresql.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@postgresql.org
>>
>>
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 4: Don't 'kill -9' the postmaster
>>
>
>



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

От
Marko Ristola
Дата:
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.trewern@mowlem.com> wrote in message
>news:d3ohub$och$1@news.hub.org...
>
>
>>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.lang@attiksystem.ch> wrote in message
>>news:6C0CF58A187DA5479245E0830AF84F42143227@poweredge.attiksystem.ch...
>>
>>
>>>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@postgresql.org
>>>[mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
>>>Envoyé : vendredi, 15. avril 2005 13:15
>>>À : pgsql-odbc@postgresql.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.lang@attiksystem.ch> wrote in message
>>>news:6C0CF58A187DA5479245E0830AF84F4214321E@poweredge.attiksystem.ch...
>>>
>>>
>>>>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@postgresql.org
>>>>[mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
>>>>Envoyé : jeudi, 14. avril 2005 21:20 À : pgsql-odbc@postgresql.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@postgresql.org
>>>
>>>
>>>
>>>---------------------------(end of broadcast)---------------------------
>>>TIP 4: Don't 'kill -9' the postmaster
>>>
>>>
>>>
>>
>>
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 4: Don't 'kill -9' the postmaster
>
>


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

От
"Ben Trewern"
Дата:
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.ristola@kolumbus.fi> wrote in message
news:4269ED02.80503@kolumbus.fi...
>
> 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.trewern@mowlem.com> wrote in message
>>news:d3ohub$och$1@news.hub.org...
>>
>>>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.lang@attiksystem.ch> wrote in message
>>>news:6C0CF58A187DA5479245E0830AF84F42143227@poweredge.attiksystem.ch...
>>>
>>>>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@postgresql.org
>>>>[mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
>>>>Envoy� : vendredi, 15. avril 2005 13:15
>>>>� : pgsql-odbc@postgresql.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.lang@attiksystem.ch> wrote in message
>>>>news:6C0CF58A187DA5479245E0830AF84F4214321E@poweredge.attiksystem.ch...
>>>>
>>>>>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@postgresql.org
>>>>>[mailto:pgsql-odbc-owner@postgresql.org] De la part de Ben Trewern
>>>>>Envoy� : jeudi, 14. avril 2005 21:20 � : pgsql-odbc@postgresql.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@postgresql.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@postgresql.org
>