Re: [Solved] A result was returned by the statement, when none was expected. - Mailing list pgsql-jdbc

From Timothy Reaves
Subject Re: [Solved] A result was returned by the statement, when none was expected.
Date
Msg-id 20021103210406.70bbe977.treaves@silverfields.com
Whole thread Raw
In response to A result was returned by the statement, when none was expected.  (Timothy Reaves <treaves@silverfields.com>)
Responses Re: [Solved] A result was returned by the statement, when none  (Kris Jurka <books@ejurka.com>)
Re: [Solved] A result was returned by the statement, when  (Dave Cramer <Dave@micro-automation.net>)
List pgsql-jdbc
    I finally figured this out.  For anyone that might want to know, what I
nneded was this:
if (statement.execute(sqlStatementString)) {
    //ResultSet Available
    ResultSet rs = statement.getResultSet();
    rs.next();
    result = rs.getInt(1);
}else{
    //Update count or no result available
    result = statement.getUpdateCount();
}

    For my functions, a ResultSet is returned, which does NOT make sence as
the functions were declared to return type integer.  Oh well.


On Sun, 3 Nov 2002 17:20:18 -0500
Timothy Reaves <treaves@silverfields.com> wrote:

>     Hello all.
>
>     I'm using PostgreSQL 7.2.2, with the latest JDBC driver, JDK
>     1.4.1, under
> linux.
>
>     In my database, I have several functions defined, and I use them
>     to
> insert & update rows in the database.  Here is an example.
> create function insert_artist (varchar, int) returns bigint as '
>         insert into artist (name, genre_loid)
>                 values ($1, $2);
>         select currval(\'loid_seq\');'
>         language 'sql';
> create function update_artist (varchar, bigint, bigint) returns integer
> as'
>         update artist
>                 set name = $1, genre_loid = $2
>                 where loid = $3;
>         select 1;'
>         language 'sql';
>
>     The insert_artist function returns the last value assigned by a
>     sequence,
> and update_artist simply returns the integer 1.
>
>     When executed from psql with: select x_artist(...); all is as
>     expected.
> When I execute it from Java via:
> Statement statement = connection.createStatement();
> int result = statement.executeUpdate("select x_artist(...)");
> the row is updated or inserted, as is the case, but I get the follwoing
> exception.
> A result was returned by the statement, when none was expected.
>     at org.postgresql.jdbc2.Statement.executeUpdate(Statement.java:75)
>     at com.silverfields.dbAccess.DBObject.save(DBObject.java:205)
>
>
>     What have I done incorrectly?  Both functions are defined to
>     return a
> single value, and Statement.executeUpdate(String) returns a single
> value.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html

pgsql-jdbc by date:

Previous
From: Bear Giles
Date:
Subject: JDBC-based class loader, 'java' column type?
Next
From: Timothy Reaves
Date:
Subject: Escaping strings?