problem with multiple result sets

From: Dr(dot)Graef(at)t-online(dot)de (Albert Graef)
To: pgsql-odbc(at)postgresql(dot)org
Subject: problem with multiple result sets
Date: 2003-09-18 15:40:50
Message-ID: 3F69D202.2050109@t-online.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

ODBC driver version: 7.2.5
PostgreSQL database version: 7.3.2

I'm using the database and odbc driver which ship with SuSE 8.2
Professional, but the problem is the same with the PostgreSQL database
and driver on RedHat 9.

The problem occurs when accessing multiple result sets from a batch
query such as `select * from table1; select * from table2'. To read back
the result sets, I use a loop involving a call to SQLMoreResults() as
described in the ODBC docs. The basic outline of the loop is as follows
(with error checking on return values omitted for clarity):

do {
/* check for the availability of a result set with SQLNumResultCols()
and get the column titles from the current result set using
SQLDescribeCol() */
while (SQLFetch(hstmt) != SQL_NO_DATA_FOUND) {
/* get the data from the current row using SQLGetData() */
}
} while (SQLMoreResults(hstmt) == SQL_SUCCESS);

I guess that's the right way to do it; I mostly pilfered this code from
the odbctest program included with iODBC.

Using this code, I can access single result sets, or multiple results if
the results are just row counts all right, but when I try to read
multiple result sets from a query like the one above, it seems that
after SQLMoreResults() the cursor is not properly reset to the first row
in the next result set. Specifically, if the 1st query yields 8 rows and
the 2nd one 10 rows, then I get all rows from the first result set, but
only the last one (the 10th row) from the 2nd.

This happens with both the iODBC and unixODBC driver managers. I also
found the same behaviour when executing the batched query from the
odbctest program, so it is not specific to my application.

Is there something I'm doing wrong here? Any way to fix this?

Many thanks in advance,
Albert Graef

P.S.: As I'm not subscribed to the list it would be nice if you cc to my
mail address. Thanks.

--
Dr. Albert Gr"af
Email: Dr(dot)Graef(at)t-online(dot)de, ag(at)muwiinfa(dot)geschichte(dot)uni-mainz(dot)de
WWW: http://www.musikwissenschaft.uni-mainz.de/~ag

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Paulo Scardine 2003-09-18 18:04:32 Killing the backend to cancel a long waiting query
Previous Message Mikhail Umorin 2003-09-18 14:57:35 Re: Delphi7, ADO, ODBC and PostgreSQL connection problems: SUCCESS!