Обсуждение: Result Set FORWARD_ONLY
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
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