Re: getUdateCount() vs. RETURNING clause

Поиск
Список
Период
Сортировка
Искать
От
Oliver Jowett
Тема
Re: getUdateCount() vs. RETURNING clause
Дата
Msg-id
4B0D1164.1060006@opencloud.com
Ответ на
Список
Дерево обсуждения
getUdateCount() vs. RETURNING clause Thomas Kellerer <spam_eater@gmx.net>
Re: getUdateCount() vs. RETURNING clause Oliver Jowett <oliver@opencloud.com>
Re: getUdateCount() vs. RETURNING clause Thomas Kellerer <spam_eater@gmx.net>
Re: getUdateCount() vs. RETURNING clause Oliver Jowett <oliver@opencloud.com>
Re: getUdateCount() vs. RETURNING clause Thomas Kellerer <spam_eater@gmx.net>
Re: getUdateCount() vs. RETURNING clause Oliver Jowett <oliver@opencloud.com>
Re: getUdateCount() vs. RETURNING clause Thomas Kellerer <spam_eater@gmx.net>
Re: getUdateCount() vs. RETURNING clause Oliver Jowett <oliver@opencloud.com>
Re: getUdateCount() vs. RETURNING clause Oliver Jowett <oliver@opencloud.com>
Re: getUdateCount() vs. RETURNING clause Thomas Kellerer <spam_eater@gmx.net>
Thomas Kellerer wrote:

> Hmm, my understand was a bit different.
> The Javadocs simply say
> 
> There are no more results when the following is true:
> ((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
> 
> It doesn't state that they are mutually exclusive. And for me it seemed 
> to imply that I can call getMoreResults() and getUpdateCount() in a loop 
> in order to process everything that is returned.
> 
> Additionally the Javadocs for getUpdateCount() says:
> 
> "Gets the *current* result as an update count" and ".. if there are no 
> more results it returns -1"


You've done some selective editing there. The javadoc I referred to is 
this (from the Java 6 javadoc):

getResultSet():

Retrieves the current result as a ResultSet object. This method should 
be called only once per result.

Returns: the current result as a ResultSet object or null if the result 
is an update count or there are no more results

---

getUpdateCount():

Retrieves the current result as an update count; if the result is a 
ResultSet object or there are no more results, -1 is returned. This 
method should be called only once per result.

Returns: the current result as an update count; -1 if the current result 
is a ResultSet object or there are no more results

---

I think that's fairly clear: the "current result" is either a ResultSet, 
or an update count, but it can't be both. getUpdateCount() explicitly 
says that it returns "-1 [...] if the current result is a ResultSet 
object", and getResultSet() explicitly says that it returns "null if the 
[current] result is an update count."

> The word "current" here also let me to believe I can call those methods 
> multiple times.

 From memory the postgresql driver doesn't care if you call them 
multiple times, but FWIW the javadoc says that you should only call them 
once per result.

-O
В списке pgsql-jdbc по дате отправления
От: Thomas Kellerer
Дата:
От: Thomas Kellerer
Дата:
FAQ