Hello,
i have the database with two tables Opzioni, Preventivi.

This is my code;

public class DerbySample {
public static void main(String args[]) {
     // esempio collegamento a derby con modifiche
     try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); String connectionString = "jdbc:derby:/Users/harlock/Documents/soft/EsempiJava_15/dati;create=false"; Connection con = DriverManager.getConnection(connectionString, "", "");
        String sql = "select * from preventivi where prvID = 1";
ResultSet rsPreventivi = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE).executeQuery(sql);
        rsPreventivi.next();
        sql = "select * from opzioni";
        //----
ResultSet rsOpzioni = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY).executeQuery(sql);
        while (rsOpzioni.next()) {
           System.out.println(rsOpzioni.getString("opzUtente"));
        }
        rsOpzioni.close();
        //----
        rsPreventivi.updateString("prvUtente", "fran");
        rsPreventivi.updateRow();
        rsPreventivi.close();
        System.out.println("bye bye");
     } catch (Exception ex) {
        System.out.println(ex.toString());
     }

  }
}

Run my sample program i receive the error: Invalid cursor state - no current row.
If comment the line;
ResultSet rsOpzioni = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY).executeQuery(sql);
        while (rsOpzioni.next()) {
           System.out.println(rsOpzioni.getString("opzUtente"));
        }
        rsOpzioni.close();

my program work correctly!!!

Why? I don't understand!!!
thans.

Reply via email to