Lenard, Rohan (Rohan) wrote:
> What I'm trying to do is do 2 inserts and get the resultant key values
> from the 2 inserts - i.e. effectively the row indexes (there are
> separate sequences for the pkey for each table, so the currval() gives
> the key of the insert for that table.
>
> This SQL works fine from any command line interface to the DB - giving
> the expected results.
>
> However through the JDBC driver, I don't get any results with a select
> involving the 2 seqs, but if I choose just one I do !!.
That is weird.
I will try to find time to put together a selfcontained testcase later
on (you could speed this up by sending me one :)
> BTW - The followup analysis below is flawed.
>
> With this SQL the driver always returns false for the execute() thus
> taking the getMoreResults() path & there are never results for the
> INSERT (at least not easily obtainable via the API in a generic way).
Sorry -- not thinking there :)
What I'd expect to see is this sequence:
execute() returns false (no resultset for this result)
getUpdateCount() returns 1 (1 row inserted)
getMoreResults() returns false (no resultset for this result)
getUpdateCount() returns 1 (1 row inserted)
getMoreResults() returns true (resultset present)
getResultSet() returns an appropriate resultset for the SELECT
getMoreResults() returns false (no resultset for this result)
getUpdateCount() returns -1 (no more results)
Your code seems to be expecting something different..
-O