Re: getUdateCount() vs. RETURNING clause
От | Thomas Kellerer |
---|---|
Тема | Re: getUdateCount() vs. RETURNING clause |
Дата | |
Msg-id | heimgq$sdo$1@ger.gmane.org обсуждение исходный текст |
Ответ на | Re: getUdateCount() vs. RETURNING clause (Oliver Jowett <oliver@opencloud.com>) |
Ответы |
Re: getUdateCount() vs. RETURNING clause
|
Список | pgsql-jdbc |
Oliver Jowett, 25.11.2009 01:40: > Thomas Kellerer wrote: > >> boolean hasResult = pstmt.execute(); >> >> if (hasResult) { >> ResultSet rs = pstmt.getResultSet(); >> if (rs != null && rs.next()) { >> int newId = rs.getInt(1); >> System.out.println("newid: " + newId); >> } >> } >> >> int affected = pstmt.getUpdateCount(); >> System.out.println("affected: " + affected); >> >> I do see the returned ID from the ResultSet but getUpdateCount() always >> returns -1 even though I know that a row was updated. >> What am I missing here? > > Update counts and result sets (for a particular result) are mutually > exclusive. If getResultSet() returns non-null then getUpdateCount() must > return -1; see the javadoc for those two methods. 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" The word "current" here also let me to believe I can call those methods multiple times. Regards Thomas
В списке pgsql-jdbc по дате отправления: