|
|
Sponsor |
[jira] Commented: (DERBY-186) isFirst() returns true when relative(x) goes : msg#00524apache.db.derby.devel
[ 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> |
|---|---|---|
| Previous by Date: | [jira] Commented: (DERBY-187) Starting derby network server as a service in Win OS, Samuel Andrew McIntyre (JIRA) |
|---|---|
| Next by Date: | [jira] Commented: (DERBY-182) BUILDING.txt 3.4.6 refers to a readme file for testing that does not exist, Bernt M. Johnsen (JIRA) |
| Previous by Thread: | [jira] Created: (DERBY-186) isFirst() returns true when relative(x) goes beyond result set, George Baklarz (JIRA) |
| Next by Thread: | Re: [jira] Commented: (DERBY-186) isFirst() returns true when relative(x) goes beyond result set, Shreyas Kaushik |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
Free MagazinesCisco NewsReceive 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 |
Home | sitemap
| advertise | OSDir is
an inevitable website.
|