Re: [Solved] A result was returned by the statement, when none

Поиск
Список
Период
Сортировка
Искать
От
Kris Jurka
Тема
Re: [Solved] A result was returned by the statement, when none
Дата
Msg-id
Pine.LNX.4.33.0211032253260.9031-100000@leary.csoft.net
Ответ на
Список
Дерево обсуждения
A result was returned by the statement, when none was expected. Timothy Reaves <treaves@silverfields.com>
Re: [Solved] A result was returned by the statement, when none was expected. Timothy Reaves <treaves@silverfields.com>
Re: [Solved] A result was returned by the statement, when Dave Cramer <Dave@micro-automation.net>
Re: [Solved] A result was returned by the statement, when none Kris Jurka <books@ejurka.com>


Your problem is that you are calling executeUpdate while passing in a
select statement.  Even though the select statement only returns 1 row of
1 column, it is still a ResultSet while the driver does not expect one to
be returned because you claimed to be doing an update.

Kris Jurka

On Sun, 3 Nov 2002, Timothy Reaves wrote:

> 	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  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
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>

В списке pgsql-jdbc по дате отправления
От: Thomas O'Dowd
Дата:
Сообщение: Re: Escaping strings?
От: Dave Cramer
Дата:
FAQ