Google 網路論壇不再支援新的 Usenet 貼文或訂閱項目,但過往內容仍可供查看。

Result Set FORWARD_ONLY

瀏覽次數:65 次
跳到第一則未讀訊息

Jeffrey Melloy

未讀,
2005年9月22日 晚上9:34:572005/9/22
收件者:
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

Oliver Jowett

未讀,
2005年9月22日 晚上10:04:452005/9/22
收件者:
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

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

0 則新訊息