1.0

Table Of Contents
"FROM employee");
uprs.moveToInsertRow();
uprs.updateString("FIRSTNAME", "Andreas");
uprs.updateString("LASTNAME", "Korneliussen");
uprs.updateInt("WORKDEPT", 123);
uprs.insertRow();
uprs.moveToCurrentRow();
Naming or Accessing the Name of a Cursor
There is no SQL language command to assign a name to a cursor. You can use the JDBC setCursorName
method to assign a name to a ResultSet that allows positioned updates and deletes.
You assign a name to a ResultSet with the setCursorName method of the Statement interface.
You assign the name to a cursor before executing the Statement that will generate it.
Statement s3 = conn.createStatement();
// name the statement so we can reference the result set
// it generates
s3.setCursorName("UPDATABLESTATEMENT");
// we will be able to use the following statement later
// to access the current row of the cursor
// a result set needs to be obtained prior to using the
// WHERE CURRENT syntax
ResultSet rs = s3.executeQuery("select * from
FlightBookings FOR UPDATE of number_seats");
PreparedStatement ps2 = conn.prepareStatement(
"UPDATE FlightBookings SET number_seats = ? " +
"WHERE CURRENT OF UPDATABLESTATEMENT");
Typically, you do not assign a name to the cursor, but let the system generate one for you automatically. You
can determine the system-generated cursor name of a ResultSet generated by a SELECT statement using the
ResultSet class's getCursorName method.
PreparedStatement ps2 = conn.prepareStatement(
"UPDATE employee SET bonus = ? WHERE CURRENT OF "+
Updatable.getCursorName());
Extended Example of an Updatable Result Set
Connection conn =
DriverManager.getConnection("jdbc:sqlfire://myHostName:1527/");
conn.setAutoCommit(false);
// Create the statement with concurrency mode CONCUR_UPDATABLE
// to allow result sets to be updatable
Statement stmt =
conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE,
ResultSet.CLOSE_CURSORS_AT_COMMIT);
// Updatable statements have some requirements
// for example, select must be on a single table
ResultSet uprs = stmt.executeQuery(
"SELECT FIRSTNME, LASTNAME, WORKDEPT, BONUS " +
"FROM EMPLOYEE FOR UPDATE of BONUS"); // Only bonus can
be updated
vFabric SQLFire User's Guide166
Developing Applications with SQLFire