logo       

Sponsor
FREE Network Mapping Tool for Microsoft® Office Visio® Professional 2007
Don't map your network by hand - let LANsurveyor Exx press for Microsoft Visio Professional 2007 automatically create network diagrams for you!

[jira] Commented: (DERBY-186) isFirst() returns true when relative(x) goes : msg#00524

apache.db.derby.devel

Subject: [jira] Commented: (DERBY-186) isFirst() returns true when relative(x) goes beyond result set

[
http://issues.apache.org/jira/browse/DERBY-186?page=comments#action_61704 ]

Shreyas Kaushik commented on DERBY-186:
---------------------------------------

I guess the problem is not whether you make a call to isFirst() first or next.
The way a call to relative() is behaving when the param passed to it is more
than the number of rows, is what is causing the problem.

I have small fix going for this which I am still testing. Will update when I
get some results.

~ Shreyas

> isFirst() returns true when relative(x) goes beyond result set
> --------------------------------------------------------------
>
> Key: DERBY-186
> URL: http://issues.apache.org/jira/browse/DERBY-186
> Project: Derby
> Type: Bug
> Components: JDBC
> Versions: 10.0.2.0
> Environment: Windows XP SP1 Professional
> Reporter: George Baklarz

>
> Bizarre error. Not sure if this is a JDBC, Derby, or Java issue.
> An opened result set has 4 records. A call to relative(3) while on row 3
> should result in isAfterLast=true, and isFirst, isBeforeFirst, and IsLast set
> to false. However, the result is isAfterLast=True and isFirst=True.
> ij
> connect 'IsAfter;create=true';
> create table x (a char(1));
> insert into x values '1','2','3','4';
> quit;
> import java.sql.*;
> public class ErrIsFirst {
> public static void main(String argv[]) throws SQLException {
> Connection conn = null;
> Statement s = null;
> ResultSet rs = null;
> String DerbyDriver = "org.apache.derby.jdbc.EmbeddedDriver";
> String returnValue;
>
> try {
> Class.forName(DerbyDriver).newInstance();
> }
> catch (Exception NoDriver) {
> System.out.println("Derby driver not found: " + DerbyDriver);
> NoDriver.printStackTrace();
> System.exit(1);
> }
> try {
> conn = DriverManager.getConnection("jdbc:derby:IsAfter");
> s =
> conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
>
> rs = s.executeQuery( "SELECT A FROM X");
> rs.next(); // First Record
> returnValue = rs.getString("A");
> System.out.println("Value="+returnValue);
>
> rs.relative(2);
> System.out.println("isFirst=" + rs.isFirst() + " isLast=" + rs.isLast()
> + " isAfterLast=" + rs.isAfterLast());
> returnValue = rs.getString("A");
> System.out.println("Value="+returnValue);
> rs.relative(-2);
> returnValue = rs.getString("A");
> System.out.println("Value="+returnValue);
> rs.relative(10);
> System.out.println("isFirst=" + rs.isFirst() + " isLast=" + rs.isLast()
> + " isAfterLast=" + rs.isAfterLast());
> returnValue = rs.getString("A");
> System.out.println("Value="+returnValue);
> rs.close();
> s.close();
> }
> catch (SQLException se) {
> String SQLState = se.getSQLState();
> String SQLMessage = se.getMessage();
> System.out.println("Error = "+SQLState);
> System.out.println(SQLMessage);
> }
> }
> }
> The results on my system are:
> Value=1
> isFirst=false isLast=false isAfterLast=false
> Value=3
> Value=1
> isFirst=true isLast=false isAfterLast=true
> Error = 24000
> Invalid cursor state - no current row.
> If you eliminate the first println call to isFirst() you get the following
> (correct) results.
> Value=1
> Value=3
> Value=1
> isFirst=false isLast=false isAfterLast=true
> Error = 24000
> Invalid cursor state - no current row.
> Okay, so where did we go wrong?

--
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
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira




<Prev in Thread] Current Thread [Next in Thread>
Sponsor
FREE Network Mapping Tool for Microsoft® OfficeVisio Professional 2007
Don't map your network by hand - let LANsurveyor Express for Microsoft Visio Professional 2007
automatically create network diagrams for you!
Google Custom Search

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe

Navigation

Home | sitemap | advertise | OSDir is an inevitable website. super tiny logo