Ok. I'll test & commit it. >>>>>>>>>>>> Andreas Korneliussen (JIRA) wrote (2006-05-11 15:19:05): > [ > http://issues.apache.org/jira/browse/DERBY-1087?page=comments#action_12379084 > ] > > Andreas Korneliussen commented on DERBY-1087: > --------------------------------------------- > > Great, then I do not have any issues w.r.t this patch, and (again) recommend > it being committed. > > > Updatable result sets behave different depending on the type of query used > > to generate the result set > > ----------------------------------------------------------------------------------------------------- > > > > Key: DERBY-1087 > > URL: http://issues.apache.org/jira/browse/DERBY-1087 > > Project: Derby > > Type: Bug > > > Components: JDBC, SQL > > Reporter: Fernanda Pizzorno > > Assignee: Fernanda Pizzorno > > Attachments: derby-1087.diff, derby-1087.stat, derby-1087v2.diff, > > derby-1087v2.stat, derby-1087v3.diff, derby-1087v3.stat > > > > Running the following code with different queries in the first statement > > produces different results. > > Where t1 has two columns: "a" of type int is the primary key, and "b" of > > type varchar(50); and contains 10 rows of data. > > Statement st1 = > > conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, > > ResultSet.CONCUR_UPDATABLE); > > Statement st2 = conn.createStatement(); > > > > ResultSet rs = st1.executeQuery("SELECT a, b FROM t1"); > > rs.next(); > > rs.next(); > > st2.executeUpdate("UPDATE t1 SET a = a + 20 WHERE a = " + > > rs.getInt(1)); > > try { > > rs.updateInt(1, rs.getInt(1) + 30); > > rs.updateRow(); > > } catch (SQLException se) { > > System.out.println(se.getMessage()); > > } > > rs.close(); > > > > rs = st2.executeQuery("SELECT a FROM t1"); > > while(rs.next()) { > > System.out.println("A = " + rs.getInt(1)); > > } > > rs.close(); > > > > st2.close(); > > st1.close(); > > If the first query is "select a, b from t1", the output will be: > > A = 1 > > A = 3 > > A = 4 > > A = 5 > > A = 6 > > A = 7 > > A = 8 > > A = 9 > > A = 10 > > A = 32 > > If the first query is "SELECT a, b FROM t1 WHERE a <= 5", the output will > > be: > > Cursor 'SQLCUR0' is not on a row. > > A = 1 > > A = 3 > > A = 4 > > A = 5 > > A = 6 > > A = 7 > > A = 8 > > A = 9 > > A = 10 > > A = 22 > > If the first query is "SELECT a FROM t1", the output will be: > > Cursor 'SQLCUR0' is not on a row. > > A = 1 > > A = 3 > > A = 4 > > A = 5 > > A = 6 > > A = 7 > > A = 8 > > A = 9 > > A = 10 > > A = 22 > > -- > 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, Staff Engineer, Technical Lead Derby/Java DB Sun Microsystems, Trondheim, Norway
pgpuAZeRe8mtE.pgp
Description: PGP signature
