Re: bug with 8.X level 4 driver? - Mailing list pgsql-jdbc
From | Dave Cramer |
---|---|
Subject | Re: bug with 8.X level 4 driver? |
Date | |
Msg-id | 0E851503-1490-4B97-93E5-BA7EC64D96E3@fastcrypt.com Whole thread Raw |
In response to | bug with 8.X level 4 driver? (Damon Anderson <anderson@eclipse.knight-rider.org>) |
Responses |
Re: bug with 8.X level 4 driver?
(Oliver Jowett <oliver@opencloud.com>)
|
List | pgsql-jdbc |
Damon, Try using batches instead. The new driver can no longer do multiple statements that way. Dave On 6-Dec-05, at 1:40 AM, Damon Anderson wrote: > Hello, > > I currently have a problem with the following statement: > > ppS = dd.createPPStatement(); > ppS.setQueryString( > "INSERT INTO sandwich_side (name) VALUES > ('pickles');" + > "INSERT INTO sandwich ( name, sideid) VALUES > ('club', currval('sandwich_side_id_seq'));" + > "SELECT currval('sandwich_side_id_seq')"); > Resultset rs = ppS.getPreparedStatement().executeQuery(); > try { > while( rs.next()) {} > } catch { SQLException ex1) { > ex1.printStackTrace(); > } > > (This use to work, but updated to 8.X driver (for a unicode issue)) > SQLMessage: No results were returned by the query. > Statement: Pooled statement wrapping physical statement INSERT INTO > sandwich_side (name) VALUES ('pickles');INSERT INTO sandwich > ( name, sideid) VALUES('club', currval > ('sandwich_side_id_seq'));SELECT currval('sandwich_side_id_seq') > org.postgresql.util.PSQLException: No results were returned by the > query. > at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery > (AbstractJdbc2Statement.java:241) > > ------------------ > > So did some searching on the forums, lists, etc.. Changed it to this: > try > { > ppS = dd.createPPStatement(); > ppS.setQueryString( > "INSERT INTO sandwich_side (name) VALUES > ('pickles');" + > "INSERT INTO sandwich ( name, sideid) VALUES > ('club', currval('sandwich_side_id_seq'));" + > "SELECT currval('sandwich_side_id_seq')"); > ppS.initStatement(); //Prepares the statement. > ppS.getPreparedStatement().execute(); > if( ppS.getPreparedStatement().getMoreResults()) > rs = ppS.getPreparedStatement().getResultSet(); > } > catch (SQLException ex1) > { > ex1.printStackTrace(); > } > > //ResultSet rs = ppS.getGeneratedKeys(); > try > { > while (rs.next()) <----- > { > System.err.println("getInt: " + rs.getInt(1)); > } > } > catch (SQLException ex) { ex.printStackTrace(); } > > So at the moment I can't get the serial id that was created for > this new insert. The old way with just executeQuery worked great > (must be 7.X driver). I tried several version of the 8.X driver, > but all had the same results. > > Anyone have the same results? Doing something wrong? > > Thanks much, > > Damon > P.S. This is with version 8.0 postgresql server. > > ---------------------------(end of > broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings >
pgsql-jdbc by date: