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 по дате отправления: