Re: getMoreResults() issue - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: getMoreResults() issue
Date
Msg-id 42E57277.70101@opencloud.com
Whole thread Raw
In response to getMoreResults() issue  ("Les Carter" <carterl@newkinetics.com>)
List pgsql-jdbc
Les Carter wrote:
> This is a multi-part message in MIME format. --bound1122277206
> Content-Type: text/html; charset=o-8859-1 Content-Transfer-Encoding:
> quoted-printable

Your mail client seems to be a bit confused there; I don't see any MIME
headers in the mail header itself.

> Has anyone else managed to get
> Statement.getMoreResults() working with the JDBC3 drivers and Postgres
> 8?  It's always coming back as false for me even though I know there's
> more data.

getMoreResults() returns false if either there are no more results, or
the next result is an update count. You must also check getUpdateCount()
to work out if you've run out of results or not. See the javadoc for
details.

As far as I know, getMoreResults() in the current driver works just fine.

> Has anyone got a working example?

I posted an example to the list recently -- check the archives
(archives.postgresql.org).

> Does this method only work for PreparedStatements or does a regular
> Statement also bring back large numbers of rows from the DB in pages?

getMoreResults() has nothing to do with "paging" large result sets, it's
to do with retriving multiple resultsets from a query that has many
statements -- e.g. "SELECT * FROM foo; SELECT * FROM bar; INSERT INTO
baz(1,2,3)" will return two resultsets and an update count.

If you want to retrieve a large resultset incrementally:

 - use a TYPE_FORWARD_ONLY resultset
 - ensure autocommit is off
 - set a non-zero fetchsize

and the driver will do the rest transparently, fetching data in blocks
behind the scenes.

-O

pgsql-jdbc by date:

Previous
From: Oliver Jowett
Date:
Subject: Re: Timestamp Summary
Next
From: Oliver Jowett
Date:
Subject: Re: Timestamp weirdness