db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bernt M. Johnsen (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-276) ResultSet.relative(int row) cannot be called when the cursor is not positioned on a row.
Date Wed, 25 May 2005 08:07:57 GMT
     [ http://issues.apache.org/jira/browse/DERBY-276?page=comments#action_66249 ]
     
Bernt M. Johnsen commented on DERBY-276:
----------------------------------------

There has been a change from JDBC 2.0 to JDBC 3.0. In JDBC 2.0 relative(1)/relative(-1) is
not necessarily equivalent to next()/previous(), and an exception should be thrown if relative()
is called when the result set is not on a row. The JDBC 3.0 spec states that relative(1)/relative(-1)
*IS* equivalent to next()/previous() (chapter 14.2.2).

The 3rd ed. of the tutorial still says that relative() should throw an exception if the result
set is not on a row, but from the wording in the spec, I deduce that this must be a bug in
the tutorial.

> ResultSet.relative(int row) cannot be called when the cursor is not positioned on a row.
> ----------------------------------------------------------------------------------------
>
>          Key: DERBY-276
>          URL: http://issues.apache.org/jira/browse/DERBY-276
>      Project: Derby
>         Type: Bug
>   Components: JDBC
>     Reporter: Bernt M. Johnsen
>     Assignee: Bernt M. Johnsen
>     Priority: Minor

>
> If the cursor is not positioned on a row, calling ResultSet.relative() causes the following
exception:
> Exception in thread "main" ERROR X0X87: ResultSet.relative(int row) cannot be called
when the cursor is not positioned on a row.
>         at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:301)
>         at org.apache.derby.impl.sql.execute.ScrollInsensitiveResultSet.getRelativeRow(ScrollInsensitiveResultSet.java:336)
>         at org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(EmbedResultSet.java:366)
>         at org.apache.derby.impl.jdbc.EmbedResultSet.relative(EmbedResultSet.java:1840)
> However, The 1.4.2 Javadoc says:
> Note: Calling the method relative(1)  is identical to calling the method next() and calling
the method relative(-1) is identical to calling the method previous(). (This is confirmed
by the JDBC 3.0 spec, ch. 14.2.2)
> Since next() is valid, so should rs.relative(1) (and all other arguments, since a too
large value will position the
> cursor after the last row, and a too low value will position it before the first).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message