insertRow and updateable resultset - Mailing list pgsql-jdbc

From Joel Hock
Subject insertRow and updateable resultset
Date
Msg-id BNEGKPDJEODNGBJKPJBPMELACBAA.joel@enspire.com
Whole thread Raw
Responses Re: insertRow and updateable resultset  (Barry Lind <blind@xythos.com>)
Re: insertRow and updateable resultset  (Dave Cramer <Dave@micro-automation.net>)
List pgsql-jdbc

All of this pertains to PostgreSQL 7.1.3 and the jdbc3 development driver that I downloaded today and also the stable driver.

 

I am using an updateable ResultSet and insertRow() to insert a row, which works fine.

I then do a refreshRow() and try to retrieve the auto-generated primary key, which doesn’t work.  I just get back a null value.  I am currently using the oid to re-select the row as a workaround, but want a database-independent way of getting the key.

 

Sample code:

 

ResultSet uprs = stmt.executeQuery("SELECT * FROM login WHERE 1=0");

uprs.moveToInsertRow();

uprs.updateObject(“email”, email);

uprs.insertRow();

uprs.next();

uprs.refreshRow();

String loginId = uprs.getString();    // returns null

 

Note that the same thing happens if I leave out the ‘uprs.next()’.  (As an aside, this is a bug because the refreshRow() should fail if next() is not called; the java docs state that refreshRow() should fail on the insert row).

 

 

Can anyone confirm that the code I’m using should return the generated primary key from the database?  I’ve looked at the driver code (AbstractJdbc2ResultSet.java) and couldn’t see why this wasn’t working.

 

Thanks,

Joel

pgsql-jdbc by date:

Previous
From: Barry Lind
Date:
Subject: Re: Control characters in sql statements close db connection
Next
From: Tom Lane
Date:
Subject: Re: Control characters in sql statements close db connection