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