Re: Num of returned ROWS

From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: Fernando Hartmann <fh(at)sadig(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Num of returned ROWS
Date: 2005-06-08 22:49:38
Message-ID: 42A77602.5030503@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Fernando Hartmann wrote:

>>> set datestyle to ISO,DMY;

BTW, you shouldn't fiddle with DateStyle; the driver relies on it being
ISO (so this particular datestyle is OK, but consider using
PreparedStatement.setDate() instead).

>>> create table table1 as select F1, sum(F10) from table where F1 between
>>> '1/1/2001' and '31/12/2004' group by F1;
>>> select count(*) from table1
>>>
>>> But the executeUpdate always return 0, even when the cont(*) return
>>> a number other than 0.

> Ok, but and the last line ? The select count ? They don't return the
> number of rows too!

Ah, I thought you meant you were looking at the resultset generated by
the SELECT and it was non-zero..

There is no updated-row-count associated with a SELECT query. But that's
not why you see a 0 returned; it's because there are two sets of results
returned by the above multi-statement query, and you're only seeing the
results of the first query if you use executeUpdate().

You should be using getMoreResults() to step forward to the results of
the second query (the SELECT) and then inspect the returned resultset
(getResultSet()). getUpdateCount() after getMoreResults() should return
-1 ("no update count, this has a ResultSet"); see the JDBC javadoc.

(this assumes you're using a recent driver which follows the spec;
earlier drivers were a bit fuzzier about how they handled multiple results)

-O

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Oliver Jowett 2005-06-08 22:51:22 Re: 8.x driver with EJB CMP
Previous Message torben 2005-06-08 19:19:32 Re: Jboss and largeObjectManager