Updating Result Sets

The IOM driver is the only SAS driver that supports updating ResultSets. For this driver, you must form the result set in one of the following ways:
  • Call the proprietary method MVAStatement.getTable(String libref, String tableName).
  • Call Statement.executeQuery with the explicit syntax “select * from table” where table must be in one of these forms:
    tableName
    With this form, the libref WORK is automatically prefixed to the table name.
    libref.table
    With this form, standard SQL elements such as joins, clauses, and column lists are not supported.
The following code sample shows the syntax that is different from basic JDBC and that is relevant to getting a result set that can be updated:
import com.sas.rio.MVAResultSet;
import com.sas.rio.MVAStatement;

/* This feature is available with IOM only. */
Class.forName("com.sas.rio.MVADriver");
connection = DriverManager.getConnection(
    "jdbc:sasiom://hostname:port", props);

stmt = (MVAStatement) connection.createStateent(
    ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_UPDATABLE);

resultSet = stmt.getTable("libref", "tableName");

/* assume that table has cols Name and Age */
resultSet.absolute(5);
resultSet.updateString("name", "jdoe");
resultSet.updateInt("age", 34);
resultSet.updateRow();