Обсуждение: "org.postgresql.util.PSQLException: This ResultSet is closed" in call to rst.getString(..)

Поиск
Список
Период
Сортировка

"org.postgresql.util.PSQLException: This ResultSet is closed" in call to rst.getString(..)

От
Russ Tennant
Дата:

The following code throws an Exception with the postgresql jdbc driver. This code does work with the MySQL and HSQL JDBC drivers and it looks correct to me. The call to getString(..) is what is causing the exception. It appears the result set is considered closed even though ResultSet.next() returns true in this case. Any help would be appreciated. Thanks.

Info:

Server Version = 8.0.3

JDBC Driver Version = 8.0 Build 312

Code that causes exception:

ResultSet rstVersionColumns=meta.getVersionColumns(null, null, tableName);

while (rstVersionColumns.next())

{

String fieldName=rstColumn.getString("COLUMN_NAME"); // Exception thrown here

if (_logger.isDebugEnabled())

_logger.debug("Version field "+fieldName);

// [snip]

}

Partial Stack Trace

Caused by: org.postgresql.util.PSQLException: This ResultSet is closed.

at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2457)

at org.postgresql.jdbc2.AbstractJdbc2ResultSet.findColumn(AbstractJdbc2ResultSet.java:2358)

at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getString(AbstractJdbc2ResultSet.java:2203)

--

Russ Tennant

russ@i2rd.com

Вложения

Re: "org.postgresql.util.PSQLException: This ResultSet is

От
Oliver Jowett
Дата:
Russ Tennant wrote:
> It appears the result set is considered closed even though
> ResultSet.next() returns true in this case.

Uh, you are calling getString on a different ResultSet to the one you
called next() on:

> ResultSet rstVersionColumns=meta.getVersionColumns(null, null, tableName);
>
> while (rstVersionColumns.next())
>
> {
>
> String fieldName=rstColumn.getString("COLUMN_NAME"); // Exception thrown
> here

-O

Re: "org.postgresql.util.PSQLException: This ResultSet is closed" in call to rst.getString(..)

От
Russ Tennant
Дата:
On Wednesday 05 October 2005 5:38 pm, you wrote:
> Russ Tennant wrote:
> > It appears the result set is considered closed even though
> > ResultSet.next() returns true in this case.
>
> Uh, you are calling getString on a different ResultSet to the one you
>
> called next() on:
> > ResultSet rstVersionColumns=meta.getVersionColumns(null, null,
> > tableName);
> >
> > while (rstVersionColumns.next())
> >
> > {
> >
> > String fieldName=rstColumn.getString("COLUMN_NAME"); // Exception
> > thrown here
>
> -O

Ahah! :) Sorry for the false alarm.

--
Russ Tennant
russ@i2rd.com

Вложения

Re: "org.postgresql.util.PSQLException: This ResultSet is

От
Dave Cramer
Дата:
The more interesting thing is what do HSQL and MySql return here ;)

Dave
On 5-Oct-05, at 6:38 PM, Oliver Jowett wrote:

> Russ Tennant wrote:
>
>> It appears the result set is considered closed even though
>> ResultSet.next() returns true in this case.
>>
>
> Uh, you are calling getString on a different ResultSet to the one you
> called next() on:
>
>
>> ResultSet rstVersionColumns=meta.getVersionColumns(null, null,
>> tableName);
>>
>> while (rstVersionColumns.next())
>>
>> {
>>
>> String fieldName=rstColumn.getString("COLUMN_NAME"); // Exception
>> thrown
>> here
>>
>
> -O
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 6: explain analyze is your friend
>
>