Re: isLast() and empty ResultSet

Поиск
Список
Период
Сортировка
От Ruediger Herrmann
Тема Re: isLast() and empty ResultSet
Дата
Msg-id 14442.1114159556@www16.gmx.net
обсуждение исходный текст
Ответ на isLast() and empty ResultSet  ("Ruediger Herrmann" <ruediger.herrmann@gmx.de>)
Список pgsql-jdbc
Thanks a lot to all of you for the replies.

I'm now using isBeforeFirst() to test for an empty
ResultSet, wich as far as my tests show seems to work
if it is the first thing done.

Regards
Rüdiger

--- Oliver Jowett <oliver@opencloud.com> wrote:
> Ruediger Herrmann wrote:
> > Hello,
> >
> > I implemented an Iterator interface iterating over
> a ResultSet. Therefore
> > I rely on isLast() to implement the
> Iterator#hasNext() method. This works
> > fine unless the whole ResultSet is empty.
> > For empty RresultSets, isLast always returns true.
> > Stepping through the code I found the reason
> therefore. Line 544 of
> > AbstractJdbc2ResultSet says
> >     if (rows_size == 0)
> >          return false; // No rows.
> > At least to me this is suspicious as I would
> return the opposite. Might that
> > be a bug or is there any other reason to behave
> like this?
>
> It's not a bug, AFAIK. isLast() returns true if the
> resultset is
> positioned *on* the last row of the resultset. This
> means that if you
> have a 5-row resultset, isLast() is true when the
> 5th row is the
> currently active row (and you can retrieve data from
> that row at that
> point).
>
> For a 0-row resultset, we can never be on the last
> row as there are no
> rows at all.
>
> You could try something like this for your hasNext()
> condition:
>
>   rs.isBeforeFirst() || (rs.getRow() != 0 &&
> !rs.isLast())
>
> (note that isBeforeFirst() returns false on an empty
> resultset, per javadoc)
>
> -O
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to
> majordomo@postgresql.org
>
>
>

--
+++ GMX - Die erste Adresse für Mail, Message, More +++

1 GB Mailbox bereits in GMX FreeMail http://www.gmx.net/de/go/mail

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Oliver Jowett
Дата:
Сообщение: Re: PreparedStatement.setString
Следующее
От: "Xavier Poinsard"
Дата:
Сообщение: Re: What Hibernate Object ID generator is recommanded for