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 13:14:24 |
Message-ID: | 4B0D2DB0.8020707@opencloud.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Thomas Kellerer wrote:
> Back to my original question then: why doesn't the Postgres driver
> return 1 as the updateCount in this situation?
> I only get a single result set (which is correct) but never a 1 as the
> update count.
Back to my original answer then ;-)
Quoting your original code:
> PreparedStatement pstmt = con.prepareStatement(UPDATE_SQL); // the statement from above
> pstmt.setInt(1, 42);
> 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);
You never call getMoreResults(), so you are only looking at a single
result, which is either a resultset or an update count, never both.
-O
From | Date | Subject | |
---|---|---|---|
Next Message | Oliver Jowett | 2009-11-25 13:42:27 | Re: getUdateCount() vs. RETURNING clause |
Previous Message | Thomas Kellerer | 2009-11-25 12:30:17 | Re: getUdateCount() vs. RETURNING clause |