Re: bug with 8.X level 4 driver?

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Damon Anderson <anderson(at)eclipse(dot)knight-rider(dot)org>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: bug with 8.X level 4 driver?
Date: 2005-12-06 12:55:22
Message-ID: 0E851503-1490-4B97-93E5-BA7EC64D96E3@fastcrypt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Jan de Visser 2005-12-06 13:37:50 Re: pgsql XA with weblogic 8.1?
Previous Message Dave Cramer 2005-12-06 12:54:19 Re: JDBC executeUpdate returns 0 for table partitioning rule insertion