db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bernt M. Johnsen" <Bernt.John...@Sun.COM>
Subject Re: [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 09:03:35 GMT
The problem is: relative(1)/relative(-1) can't both be identical to
next()/previous() and throw and exception if there is no current
row. I think there's an inconsistency here (In the Javadoc and in the
tutorial, while the spec has no "current row"-requirement in
ch. 14.2.2).

>>>>>>>>>>>> Shreyas Kaushik (JIRA) wrote (2005-05-25
10:41:55):
>      [ http://issues.apache.org/jira/browse/DERBY-276?page=comments#action_66254 ]
>      
> Shreyas Kaushik commented on DERBY-276:
> ---------------------------------------
> 
> Javadoc for J2SE 5.0 says...
> 
> 
> relative
> 
> boolean relative(int rows)
>                  throws SQLException
> 
>     Moves the cursor a relative number of rows, either positive or negative. Attempting
to move beyond the first/last row in the result set positions the cursor before/after the
the first/last row. Calling relative(0) is valid, but does not change the cursor position.
> 
>     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().
> 
>     Parameters:
>         rows - an int specifying the number of rows to move from the current row; a positive
number moves the cursor forward; a negative number moves the cursor backward 
>     Returns:
>         true if the cursor is on a row; false otherwise 
>     Throws:
>         SQLException - if a database access error occurs, there is no current row, or
the result set type is TYPE_FORWARD_ONLY
>     Since:
>         1.2
> 
> 
> 
> > 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: Improvement
> >   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
> 

-- 
Bernt Marius Johnsen, Database Technology Group, 
Sun Microsystems, Trondheim, Norway

Mime
View raw message