RE: getMoreResults() returns false incorrectly

Поиск
Список
Период
Сортировка
От Bob Kline
Тема RE: getMoreResults() returns false incorrectly
Дата
Msg-id Pine.LNX.4.10.10007031116490.12563-100000@rksystems.com
обсуждение исходный текст
Ответ на RE: getMoreResults() returns false incorrectly  (Peter Mount <petermount@it.maidstone.gov.uk>)
Список pgsql-interfaces
I agree (though -- according to Sun's sample code I was referring to --
the thing that "already exists" need not be a result set, but could
instead be an update count).

Thanks very much for taking the time to investigate and respond.

Bob

On Tue, 27 Jun 2000, Peter Mount wrote:

> This sounds correct. If you think about it, getMoreResults() does
> seem to imply it get's another ResultSet, implying that one already
> exists.
> 
> Peter
> 
> --
> Peter Mount
> Enterprise Support
> Maidstone Borough Council
> Any views stated are my own, and not those of Maidstone Borough Council
> 
> 
> -----Original Message-----
> From: Bob Kline [mailto:bkline@rksystems.com]
> Sent: Monday, June 26, 2000 5:13 PM
> To: Peter Mount
> Cc: pgsql-interfaces@postgresql.org
> Subject: RE: [INTERFACES] getMoreResults() returns false incorrectly 
> 
> 
> I believe I've figured out what the problem is.  The JDBC API
> documentation doesn't say so explicitly, but the example code in Sun's
> JDBC tutorial implies that you can only call getMoreResults() after you
> have retrieved either the first update count (with getUpdateCount()) or
> the first result set.
> 
> So the version of the code below which works would be:
> 
>     Statement stmt = conn.createStatement();
>     stmt.execute(queryString);
>     for (;;) {
>         int updateCount = stmt.getUpdateCount();
>         if (updateCount >= 0) { 
>             // report update count ...
>         }
>         else {
>             ResultSet rs = stmt.getResultSet();
>             if (rs == null)
>                 break;
>             // process resultset ....
>         }
>         stmt.getMoreResults();
>     }
> 
> Bob
> 
> On Mon, 26 Jun 2000, Peter Mount wrote:
> 
> > I'll look into this, as the psql example included with the source
> > uses this method in this way.
> > 
> > Peter
> > 
> > -----Original Message-----
> > From: Bob Kline [mailto:bkline@rksystems.com]
> > Sent: Tuesday, June 20, 2000 11:25 AM
> > To: pgsql-interfaces@postgresql.org
> > Subject: [INTERFACES] getMoreResults() returns false incorrectly 
> > 
> > 
> > [Second submission; first seems to have disappeared.]
> > 
> > I tried to search the list archives, but the search engine appears to be
> > broken (comes back with an http 404 error).
> > 
> > Using the Postgresql JDBC driver (I'm testing with jdbc7.0-1.1.jar) it
> > appears that Statement.getMoreResults() returns false even if there is a
> > result set from the query just executed.
> > 
> >     Statement stmt = conn.createStatement();
> >     stmt.execute("SELECT * FROM t");
> >     if (stmt.getMoreResults()) {
> >         ResultSet rs = stmt.getResultSet();
> >         while (rs.next()) {
> >             // process row ....
> >         }
> >     }
> > 
> > The call to getMoreResults() returns false consistently.  If the call is
> > replaced with 'if (true) ...' then the code to get the result set and
> > process the rows works fine.
> > 
> > Accoring to the JDBC docs, this method should return "true if the next
> > result is a ResultSet; false if it is an update count or there are no
> > more results."  There is no update count (as confirmed by
> > getUpdateCount()).
> > 
> > Is this a known problem?  If this method doesn't work as documented,
> > it's impossible to "work with an unknown SQL string" as the
> > documentation for execute() indicates we should be able to (without
> > parsing the SQL query).
> > 
> 

-- 
Bob Kline
mailto:bkline@rksystems.com
http://www.rksystems.com



В списке pgsql-interfaces по дате отправления:

Предыдущее
От: Peter Mount
Дата:
Сообщение: RE: JDBC Driver support for SQLException.getSQLState ()
Следующее
От: "Ken J. Wright"
Дата:
Сообщение: Re: psql comment char??