| From: | Oliver Jowett <oliver(at)opencloud(dot)com> | 
|---|---|
| To: | Thomas Kellerer <spam_eater(at)gmx(dot)net> | 
| Cc: | pgsql-jdbc(at)postgresql(dot)org | 
| Subject: | Re: getUdateCount() vs. RETURNING clause | 
| Date: | 2009-11-25 00:40:30 | 
| Message-ID: | 4B0C7CFE.50106@opencloud.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-jdbc | 
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.
You probably want to call getMoreResults() in there somewhere to step to
the next result.
-O
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Thomas Kellerer | 2009-11-25 07:31:37 | Re: getUdateCount() vs. RETURNING clause | 
| Previous Message | Thomas Kellerer | 2009-11-24 11:45:26 | getUdateCount() vs. RETURNING clause |