psqlodbc and SQLFetch after SQLTables gives SQL_NO_DATA_FOUND

From: Giuliano Gavazzi <dev+pgsql(at)humph(dot)com>
To: pgsql-odbc(at)postgresql(dot)org
Subject: psqlodbc and SQLFetch after SQLTables gives SQL_NO_DATA_FOUND
Date: 2003-02-09 00:49:00
Message-ID: a05200f2dba6b52c677bd@[10.0.1.15]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Dear list,

I posted some time ago about a problem with retrieving table in
MSQuery on MacOSX using postgres 3.7.1 and psqlodbc-7.2.5 with
iODBC (iODBC-SDK-3.5.3).

At the time I found, by snooping the TCP stream, that the SQLTables
function, that must be used by MSQuery to retrieve the table list,
did indeed return the tables, but for some reason MSQuery was unable
to get this data.

Now I have enabled tracing and found where the failure is. Apparently
MSQ uses SQLFetch just after SQLTables to get the table list, this
SQLFetch fails by returning SQL_NO_DATA_FOUND. Here I have two
snippets from the traces of MSQ retrieving tables first using
OpenLink Postgres Lite driver (that succeeds) and then using psqlodbc
(that fails):

1) openlink driver:

iODBC[Microsoft Query] ThID:A0000DEC ENTER SQLTables

iODBC[Microsoft Query] ThID:A0000DEC EXIT SQLTables with return
code 0 (SQL_SUCCESS)

Microsoft Query ThID:A0000DEC EXIT SQLTables with return code 0
(SQL_SUCCESS)
HSTMT 0x01619a00
CHAR* 00000000 "..."
SMALLINT -3536
CHAR* 00000000 "..."
SMALLINT -18992
CHAR* 00000000 "..."
SMALLINT 15056
CHAR* 0x001c3fd8 "Table"
SMALLINT 5

Microsoft Query ThID:A0000DEC ENTER SQLFetch
HSTMT 0x01619a00

iODBC[Microsoft Query] ThID:A0000DEC ENTER SQLFetch

iODBC[Microsoft Query] ThID:A0000DEC EXIT SQLFetch with return
code 0 (SQL_SUCCESS)

Microsoft Query ThID:A0000DEC EXIT SQLFetch with return code 0
(SQL_SUCCESS)
HSTMT 0x01619a00

Microsoft Query ThID:A0000DEC ENTER SQLNumResultCols

2) psqlodbc driver:

iODBC[Microsoft Query] ThID:A0000DEC ENTER SQLTables

iODBC[Microsoft Query] ThID:A0000DEC EXIT SQLTables with return
code 0 (SQL_SUCCESS)

Microsoft Query ThID:A0000DEC EXIT SQLTables with return code 0
(SQL_SUCCESS)
HSTMT 0x0162e800
CHAR* 00000000 "..."
SMALLINT -3536
CHAR* 00000000 "..."
SMALLINT -18992
CHAR* 00000000 "..."
SMALLINT 14880
CHAR* 0x001c3fd8 "Table"
SMALLINT 5

Microsoft Query ThID:A0000DEC ENTER SQLFetch
HSTMT 0x0162e800

iODBC[Microsoft Query] ThID:A0000DEC ENTER SQLFetch

iODBC[Microsoft Query] ThID:A0000DEC EXIT SQLFetch with return
code 100 (SQL_NO_DATA_FOUND)

Microsoft Query ThID:A0000DEC EXIT SQLFetch with return code 100
(SQL_NO_DATA_FOUND)
HSTMT 0x0162e800

Note that by retrieving the result set by other methods (as in the
odbctest application) one can succeed.

Anybody any idea if this is a problem with the psqlodbc driver and
how it could be solved.

Thanks for your time.

Giuliano

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Stefanos Karasavvidis 2003-02-09 17:36:02 Re: unicode driver + text fields as primary keys
Previous Message Tom Lane 2003-02-08 17:16:35 Re: ConnInfo assumes signed char