Обсуждение: Result Set FORWARD_ONLY

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

Result Set FORWARD_ONLY

От
Jeffrey Melloy
Дата:
I'm having trouble setting the result set to anything but FORWARD_ONLY.

If I do this:

pstmt = conn.prepareStatement("select name, name from amz.product_detail_items order by name");
rs = pstmt.executeQuery();
rs.setFetchDirection(ResultSet.TYPE_SCROLL_INSENSITIVE);

I get:

org.postgresql.util.PSQLException: Invalid fetch direction constant: 1,004.

I get the same error if I set it on the pstmt object before executing the query.

Using version 311 of the JDBC driver and 8.0.2.

Thanks,
Jeff

Re: Result Set FORWARD_ONLY

От
Oliver Jowett
Дата:
Jeffrey Melloy wrote:

> pstmt = conn.prepareStatement("select name, name from
> amz.product_detail_items order by name");
> rs = pstmt.executeQuery();
> rs.setFetchDirection(ResultSet.TYPE_SCROLL_INSENSITIVE);
>
> I get:
>
> org.postgresql.util.PSQLException: Invalid fetch direction constant: 1,004.

The driver is working correctly here.

You can only set the resultset type when creating the statement, like so:

> pstmt = conn.prepareStatement("select name, name from amz.product_detail_items order by name",
ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 

ResultSet.setFetchDirection() is used to hint to the driver about the
expected order of resultset use, not to set the resultset type. It
expects one of ResultSet.FETCH_FORWARD, ResultSet.FETCH_REVERSE, or
ResultSet.FETCH_UNKNOWN. The driver is (correctly) complaining that
you're giving it some other value.

The java.sql javadoc covers all this.

-O