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-1087) Updatable result sets behave different depending on the type of query used to generate the result set
Date Mon, 15 May 2006 09:28:21 GMT
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

Mime
View raw message