RE: Postgres odbc driver bug

From: "Hiroshi Inoue" <Inoue(at)tpf(dot)co(dot)jp>
To: "Keith Millard" <Kmillard(at)pumatech(dot)com>
Cc: <pgsql-interfaces(at)postgresql(dot)org>
Subject: RE: Postgres odbc driver bug
Date: 2001-05-05 03:43:41
Message-ID: EKEJJICOHDIEMGPNIFIJMEKMEEAA.Inoue@tpf.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces pgsql-odbc

Please try the latest driver 7.01.0005.
It solves several parameter handling problems.

regards,
Hiroshi Inoue
-----Original Message-----
From: pgsql-interfaces-owner(at)postgresql(dot)org
[mailto:pgsql-interfaces-owner(at)postgresql(dot)org]On Behalf Of Keith Millard
Sent: Tuesday, May 01, 2001 10:37 PM
To: 'pgsql-interfaces(at)postgresql(dot)org'
Subject: [INTERFACES] Postgres odbc driver bug

We have found a reproducible problem with the Postgres ODBC driver. It
has to do with the parameter replacement feature in the driver. Below is a
piece of test code that shows the problem. We were able to fix the problem
by making a change to execute.c in the ODBC driver code (attached).

odbc driver version : Found in both 6.50 and 7.01.0004.

postgresql database version : Found with both 7.0.2 and 7.0.3 versions of
Postgres.

Server Operating System: Windows2000

Client Operation System: Windows2000

Explanation of the odbc driver bug:

/*****************************************
* ERROR HAPPENS HERE:
* If we set the buffer that we binded to column "text1" now, it will
FAIL.
* The SQLExecute in doQuery() will succeed (finding 0 rows), and the
* SQLFetchScroll call will return SQL_NO_DATA_FOUND.
*
* This is because of a bug in the odbc driver. The call to
SQLNumResultCols
* will execute the query in the driver, but the buffer that is binded
is
* empty, so no rows will be found. This of course assumes that the
table
* doesn't contain any empty records for the "text1" column, which is
correct
* for our test. Then when we call SQLExcute, the driver will realize
it has
* already done the query work and will not do it again, even though
our
* buffer for parameter substitution has changed (next line of code
below
* this comment).
*****************************************/

Zip file is attached. The code is currently set up to fail, but I
describe in my comments that you can uncomment the code that sets the buffer
before SQLNumResultCols to make things will work.

Thanks for your attention,

Keith Millard

In response to

Browse pgsql-interfaces by date

  From Date Subject
Next Message Peter Eisentraut 2001-05-05 12:54:05 Re: PyGreSQL: setup.py is broken in RC1
Previous Message Bruce Momjian 2001-05-04 22:25:48 Re: PyGreSQL: setup.py is broken in RC1

Browse pgsql-odbc by date

  From Date Subject
Next Message Rony Khoury 2001-05-07 09:25:36 encrypt odbc transactions?
Previous Message Julio Csar Gzquez 2001-05-04 23:50:48 How to enable ODBC access in Windows