Skip site navigation (1) Skip section navigation (2)

Re: Why?? executeQuery() & exception: "No results were returned by the query."

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Panu Outinen <panu(at)vertex(dot)fi>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Why?? executeQuery() & exception: "No results were returned by the query."
Date: 2001-05-08 19:32:19
Message-ID: 200105081932.f48JWJ824950@candle.pha.pa.us (view raw or flat)
Thread:
Lists: pgsql-jdbc
Are you saying that this "no result" error is required by the JDBC
standard, or is it a PostgreSQL bug?


> Hi there !
> 
> Can anyone explain why does executeQuery() throws an exception
> "No results were returned by the query."
> when result set is empty ???????
> 
> In my opinion (and also e.g. Oracle's JDBC driver's opinion) that this is 
> just normal and user can check the number of rows (=0) that none was 
> returned. It's totally different to make a query where something is wrong 
> in the query itself e.g. non-existant column is used or perhaps in the 
> database connection!
> 
> This is "pain in the *ss" to test against in one's code for every different 
> JDBC driver's DIFFERENT return string there available and it's impossible 
> to do code that works for even unknown drivers. And Postgresql has even 
> language dependant versions of this !!!
> 
> Since Postgresql source code is so nicely publicly available (thank you all 
> there!) and thus improvements are easily given by anyone I just wonder if 
> this could be improved, please !!!
> 
>    - Panu
> 
> PS. I know for sure that at least SQL Server throws the following when used 
> through JDBC-ODBC bridge: "No ResultSet was produced".
> 
> 
> ----------------------------------------------------------------------
> 
> org\postgresql\jdbc2\Statement.java:
> 
> ...
> 	/**
> 	 * Execute a SQL statement that retruns a single ResultSet
> 	 *
> 	 * @param sql typically a static SQL SELECT statement
> 	 * @return a ResulSet that contains the data produced by the query
> 	 * @exception SQLException if a database access error occurs
> 	 */
> 	public java.sql.ResultSet executeQuery(String sql) throws SQLException
> 	{
> 	    this.execute(sql);
> 	    while (result != null && 
> !((org.postgresql.ResultSet)result).reallyResultSet())
> 		result = ((org.postgresql.ResultSet)result).getNext();
> 	    if (result == null)
> 		throw new PSQLException("postgresql.stat.noresult");
> 	    return result;
> 	}
> ...
> 
> ----------------------------------------------------------------------
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

In response to

Responses

pgsql-jdbc by date

Next:From: Bruce MomjianDate: 2001-05-08 19:57:24
Subject: Outstanding patches
Previous:From: Brian_WilliamsDate: 2001-05-08 18:50:17
Subject: "No results" exception on insert

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group