> -----Original Message-----
> From: Albert Graef
>
> 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.
Oh I see. I would try to fix it. However, I'm not sure how to
fix it in your *nix environment.
regards,
Hiroshi Inoue