Thread: RE: Why?? executeQuery() & exception: "No results were ret urned by the query."
RE: Why?? executeQuery() & exception: "No results were ret urned by the query."
From
Joe Shevland
Date:
In all the years I've been using the PostgreSQL JDBC driver I haven't spotted this problem; resultset.next() should just return 'false' if there are no more rows to retrieve... unless this is caused by executing a 'non-query' i.e. executing an insert/update/delete statement in sment.executeQuery(). Cheers, Joe > -----Original Message----- > From: pgsql-jdbc-owner@postgresql.org > [mailto:pgsql-jdbc-owner@postgresql.org]On Behalf Of Panu Outinen > Sent: Wednesday, 9 May 2001 12:05 AM > To: pgsql-jdbc@postgresql.org > Subject: [JDBC] Why?? executeQuery() & exception: "No results were > returned by the query." > > > 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 >