Обсуждение: Problem with simple SELECT over ODBC

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

Problem with simple SELECT over ODBC

От
"Werner Kuhnle"
Дата:
Hello,
 
I am completely new to PostgreSQL and wanted to evaluate PostgreSQL as a substitute for MS SQL.
Therefore I installed PG 9 RC and ODBC driver 8.04.02 (ANSI)
The program (EXE) calling the ODBC driver (Windows 32bit written in VC++) is using ANSI strings, not Unicode.
 
When I try the following simple SELECT :
 
SELECT Kurzzeichen,Name_Feld,EURO_Umr_Faktor,NKStellen,RowTimestamp,RowUserID,RowDDMFields,RowID FROM Waehrungen ORDER BY Kurzzeichen
 
from within pgAdminIII then it works well.
 
When I use exactly the same query with MS SQL and the SQL Server Native Client 10.0 ODBC Driver
it also works well.
 
But when exactly the same SELECT is issued to PG over the PG ODBC driver then I get :

SQLRetcode=-1
SqlState=42601, NativeError=7, MessageText=ERROR; syntax error at »,«;
 
Playing around some time with ENCODING=WIN1252 instead of UTF-8 and trying the UNICODE odbc driver instead of the ANSI driver gives the following results:
 
With the UNICODE driver the message does not occur, but the data returned is completely corrupted.
 
With ENCODING=WIN1252 the message is slightly different:
SQLRetcode=-1
SqlState=42601, NativeError=7, MessageText=ERROR; syntax error at »,«;
 
What's wrong here ?
 
Thanks in advance for any help/hint.
 
Greetings
 
Werner
 

 

Re: Problem with simple SELECT over ODBC

От
Tom Lane
Дата:
"Werner Kuhnle" <wek@kuhnle.com> writes:
> But when exactly the same SELECT is issued to PG over the PG ODBC driver then I get :

> SQLRetcode=-1
> SqlState=42601, NativeError=7, MessageText=ERROR; syntax error at �,�;

> Playing around some time with ENCODING=WIN1252 instead of UTF-8 and trying the UNICODE odbc driver instead of the
ANSIdriver gives the following results: 

> With the UNICODE driver the message does not occur, but the data returned is completely corrupted.

> With ENCODING=WIN1252 the message is slightly different:
> SQLRetcode=-1
> SqlState=42601, NativeError=7, MessageText=ERROR; syntax error at »,«;

> What's wrong here ?

No idea, but the first thing I'd try is looking into the server's log to
see what it thought the received query was.  Anything that generates an
error would be logged by default.

            regards, tom lane

Re: Problem with simple SELECT over ODBC

От
Hiroshi Inoue
Дата:
(2010/09/03 18:00), Werner Kuhnle wrote:
>
> Hello,
> I am completely new to PostgreSQL and wanted to evaluate PostgreSQL as a
> substitute for MS SQL.
> Therefore I installed PG 9 RC and ODBC driver 8.04.02 (ANSI)
> The program (EXE) calling the ODBC driver (Windows 32bit written in
> VC++) is using ANSI strings, not Unicode.
> When I try the following simple SELECT :
> SELECT
> Kurzzeichen,Name_Feld,EURO_Umr_Faktor,NKStellen,RowTimestamp,RowUserID,RowDDMFields,RowID
> FROM Waehrungen ORDER BY Kurzzeichen
> from within pgAdminIII then it works well.
> When I use exactly the same query with MS SQL and the SQL Server Native
> Client 10.0 ODBC Driver
> it also works well.
> But when exactly the same SELECT is issued to PG over the PG ODBC driver
> then I get :
>
> SQLRetcode=-1
> SqlState=42601, NativeError=7, MessageText=ERROR; syntax error at »,«;

Could you send me directly the Mylog output?

> Playing around some time with ENCODING=WIN1252 instead of UTF-8 and
> trying the UNICODE odbc driver instead of the ANSI driver gives the
> following results:
> With the UNICODE driver the message does not occur, but the data
> returned is completely corrupted.

What do you mean by "corrupted"?
The Unicode driver returns the results in UTF16 strings.

regards,
Hiroshi Inoue