db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John T. Dow" <j...@JohnTDow.com>
Subject Re: Can an embedded Derby connection support multiple simultaneous result sets?
Date Tue, 03 Feb 2009 15:38:21 GMT
On Tue, 03 Feb 2009 11:48:58 +0100, Knut Anders Hatlen wrote:

>>>>"John T. Dow" <john@johntdow.com> writes:
>>> For example, after calling rs2.next(), rs1.getRow() returns 0. 
>>> However, the resultset is positioned properly because
>>> rs1.getString("colname") returns the correct value.
>Looks like I missed that last sentence when I answered your mail the
>first time. I still think that rs1 is not positioned on a row, and
>that's why rs1.getRow() returns null. The difference between getRow()
>and getString() is that the ResultSet object has a copy of the current
>row from which getString() fetches the string value, and it's not
>affected by the fact that the underlying cursor has lost its
>position. The row number, on the other hand, is not cached in the
>ResultSet, so getRow() always fetches the row number from the cursor and
>therefore detects that there's no current row.
>Knut Anders

You are correct, I was using autocommit and when it's turned off, getRow() continues to report
the row properly.

PostgreSQL returns the correct row even with autocommit on.

That's a bummer. I'm not about to rewrite lots of code so the standard mode is autocommit
off. Most of the time having it on is nice, it's the exception that I want it off.

I was relying on getting a 0 to indicate that the result set is empty. (After opening, I move
to the first row by default so getting a 0 has been a reliable indicator of an empty result

I sure wish there was an isEmpty() method for result sets.

I need a database-agnostic technique for determining if a result set is empty. Perhaps do
next() and then previous(), with appropriate tests for being at the beginning or end initially.
(I always use scrollable result sets.)


View raw message