Re: Why?? executeQuery() & exception: "No results were returned by the query." - Mailing list pgsql-jdbc
From | Bruce Momjian |
---|---|
Subject | Re: Why?? executeQuery() & exception: "No results were returned by the query." |
Date | |
Msg-id | 200105081932.f48JWJ824950@candle.pha.pa.us Whole thread Raw |
In response to | Why?? executeQuery() & exception: "No results were returned by the query." (Panu Outinen <panu@vertex.fi>) |
Responses |
Re: Why?? executeQuery() & exception: "No results were
returned by the query."
Re: Why?? executeQuery() & exception: "No results were returnedby the query." |
List | 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@postgresql.org so that your > message can get through to the mailing list cleanly > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
pgsql-jdbc by date: