UpdatableResultSet
Date: 2018-05-06

com.mysql.jdbc

## Class UpdatableResultSet

- java.lang.Object
- - com.mysql.jdbc.ResultSetImpl
  - - com.mysql.jdbc.UpdatableResultSet

- All Implemented Interfaces:
    ResultSetInternalMethods, java.lang.AutoCloseable, java.sql.ResultSet, java.sql.Wrapper
  Direct Known Subclasses:
    JDBC4UpdatableResultSet

      public class UpdatableResultSet
      extends ResultSetImpl

  A result set that is updatable.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected SingleByteCharsetConverter` | `charConverter`
    `protected PreparedStatement` | `inserter` PreparedStatement used to insert data
    `(package private) static byte[]` | `STREAM_DATA_MARKER` Marker for 'stream' data when doing INSERT rows
    `protected PreparedStatement` | `updater` PreparedStatement used to delete data

    - ### Fields inherited from class com.mysql.jdbc.ResultSetImpl

      `catalog, columnLabelToIndex, columnNameToIndex, columnToIndexCache, columnUsed, connection, connectionId, currentRow, doingUpdates, EMPTY_SPACE, eventSink, fastClientCal, fastDefaultCal, fetchDirection, fetchSize, fields, firstCharOfQuery, fullColumnNameToIndex, gmtCalendar, hasBuiltIndexMapping, isBinaryEncoded, isClosed, MAX_DIFF_PREC, MIN_DIFF_PREC, nextResultSet, onInsertRow, owningStatement, pointOfOrigin, profileSql, reallyResult, resultCounter, resultId, resultSetConcurrency, resultSetType, retainOwningStatement, rowData, serverInfo, statementUsedForFetchingRows, thisRow, updateCount, updateId, useFastDateParsing, useLegacyDatetimeCode, useUsageAdvisor, warningChain, wasNullFlag, wrapperStatement`

    - ### Fields inherited from interface java.sql.ResultSet

      `CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `UpdatableResultSet(java.lang.String catalog, Field[] fields, RowData tuples, MySQLConnection conn, StatementImpl creatorStmt)` Creates a new ResultSet object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `absolute(int row)` JDBC 2.0 Move to an absolute row number in the result set.
    `void` | `afterLast()` JDBC 2.0 Moves to the end of the result set, just after the last row.
    `void` | `beforeFirst()` JDBC 2.0 Moves to the front of the result set, just before the first row.
    `void` | `cancelRowUpdates()` JDBC 2.0 The cancelRowUpdates() method may be called after calling an updateXXX() method(s) and before calling updateRow() to rollback the updates made to a row.
    `protected void` | `checkRowPos()` Ensures that the cursor is positioned on a valid row and that the result set is not closed
    `protected void` | `checkUpdatability()` Is this ResultSet updateable?
    `void` | `deleteRow()` JDBC 2.0 Delete the current row from the result set and the underlying database.
    `boolean` | `first()` JDBC 2.0 Moves to the first row in the result set.
    `protected void` | `generateStatements()` Figure out whether or not this ResultSet is updateable, and if so, generate the PreparedStatements to support updates.
    `int` | `getConcurrency()` JDBC 2.0 Return the concurrency of this result set.
    `void` | `insertRow()` JDBC 2.0 Insert the contents of the insert row into the result set and the database.
    `boolean` | `isAfterLast()` JDBC 2.0 Determine if the cursor is after the last row in the result set.
    `boolean` | `isBeforeFirst()` JDBC 2.0 Determine if the cursor is before the first row in the result set.
    `boolean` | `isFirst()` JDBC 2.0 Determine if the cursor is on the first row of the result set.
    `boolean` | `isLast()` JDBC 2.0 Determine if the cursor is on the last row of the result set.
    `(package private) boolean` | `isUpdatable()`
    `boolean` | `last()` JDBC 2.0 Moves to the last row in the result set.
    `void` | `moveToCurrentRow()` JDBC 2.0 Move the cursor to the remembered cursor position, usually the current row.
    `void` | `moveToInsertRow()` JDBC 2.0 Move to the insert row.
    `boolean` | `next()` A ResultSet is initially positioned before its first row, the first call to next makes the first row the current row; the second call makes the second row the current row, etc.
    `boolean` | `prev()` The prev method is not part of JDBC, but because of the architecture of this driver it is possible to move both forward and backward within the result set.
    `boolean` | `previous()` JDBC 2.0 Moves to the previous row in the result set.
    `void` | `realClose(boolean calledExplicitly)` Closes this ResultSet and releases resources.
    `void` | `refreshRow()` JDBC 2.0 Refresh the value of the current row with its current value in the database.
    `boolean` | `relative(int rows)` JDBC 2.0 Moves a relative number of rows, either positive or negative.
    `boolean` | `rowDeleted()` JDBC 2.0 Determine if this row has been deleted.
    `boolean` | `rowInserted()` JDBC 2.0 Determine if the current row has been inserted.
    `boolean` | `rowUpdated()` JDBC 2.0 Determine if the current row has been updated.
    `protected void` | `setResultSetConcurrency(int concurrencyFlag)` Sets the concurrency type of this result set
    `protected void` | `syncUpdate()` Reset UPDATE prepared statement to value in current row.
    `void` | `updateAsciiStream(int columnIndex, java.io.InputStream x, int length)` JDBC 2.0 Update a column with an ascii stream value.
    `void` | `updateAsciiStream(java.lang.String columnName, java.io.InputStream x, int length)` JDBC 2.0 Update a column with an ascii stream value.
    `void` | `updateBigDecimal(int columnIndex, java.math.BigDecimal x)` JDBC 2.0 Update a column with a BigDecimal value.
    `void` | `updateBigDecimal(java.lang.String columnName, java.math.BigDecimal x)` JDBC 2.0 Update a column with a BigDecimal value.
    `void` | `updateBinaryStream(int columnIndex, java.io.InputStream x, int length)` JDBC 2.0 Update a column with a binary stream value.
    `void` | `updateBinaryStream(java.lang.String columnName, java.io.InputStream x, int length)` JDBC 2.0 Update a column with a binary stream value.
    `void` | `updateBlob(int columnIndex, java.sql.Blob blob)`
    `void` | `updateBlob(java.lang.String columnName, java.sql.Blob blob)`
    `void` | `updateBoolean(int columnIndex, boolean x)` JDBC 2.0 Update a column with a boolean value.
    `void` | `updateBoolean(java.lang.String columnName, boolean x)` JDBC 2.0 Update a column with a boolean value.
    `void` | `updateByte(int columnIndex, byte x)` JDBC 2.0 Update a column with a byte value.
    `void` | `updateByte(java.lang.String columnName, byte x)` JDBC 2.0 Update a column with a byte value.
    `void` | `updateBytes(int columnIndex, byte[] x)` JDBC 2.0 Update a column with a byte array value.
    `void` | `updateBytes(java.lang.String columnName, byte[] x)` JDBC 2.0 Update a column with a byte array value.
    `void` | `updateCharacterStream(int columnIndex, java.io.Reader x, int length)` JDBC 2.0 Update a column with a character stream value.
    `void` | `updateCharacterStream(java.lang.String columnName, java.io.Reader reader, int length)` JDBC 2.0 Update a column with a character stream value.
    `void` | `updateClob(int columnIndex, java.sql.Clob clob)`
    `void` | `updateDate(int columnIndex, java.sql.Date x)` JDBC 2.0 Update a column with a Date value.
    `void` | `updateDate(java.lang.String columnName, java.sql.Date x)` JDBC 2.0 Update a column with a Date value.
    `void` | `updateDouble(int columnIndex, double x)` JDBC 2.0 Update a column with a Double value.
    `void` | `updateDouble(java.lang.String columnName, double x)` JDBC 2.0 Update a column with a double value.
    `void` | `updateFloat(int columnIndex, float x)` JDBC 2.0 Update a column with a float value.
    `void` | `updateFloat(java.lang.String columnName, float x)` JDBC 2.0 Update a column with a float value.
    `void` | `updateInt(int columnIndex, int x)` JDBC 2.0 Update a column with an integer value.
    `void` | `updateInt(java.lang.String columnName, int x)` JDBC 2.0 Update a column with an integer value.
    `void` | `updateLong(int columnIndex, long x)` JDBC 2.0 Update a column with a long value.
    `void` | `updateLong(java.lang.String columnName, long x)` JDBC 2.0 Update a column with a long value.
    `void` | `updateNull(int columnIndex)` JDBC 2.0 Give a nullable column a null value.
    `void` | `updateNull(java.lang.String columnName)` JDBC 2.0 Update a column with a null value.
    `void` | `updateObject(int columnIndex, java.lang.Object x)` JDBC 2.0 Update a column with an Object value.
    `void` | `updateObject(int columnIndex, java.lang.Object x, int scale)` JDBC 2.0 Update a column with an Object value.
    `void` | `updateObject(java.lang.String columnName, java.lang.Object x)` JDBC 2.0 Update a column with an Object value.
    `void` | `updateObject(java.lang.String columnName, java.lang.Object x, int scale)` JDBC 2.0 Update a column with an Object value.
    `protected void` | `updateObjectInternal(int columnIndex, java.lang.Object x, java.lang.Integer targetType, int scaleOrLength)` Internal setObject implementation.
    `void` | `updateRow()` JDBC 2.0 Update the underlying database with the new contents of the current row.
    `void` | `updateShort(int columnIndex, short x)` JDBC 2.0 Update a column with a short value.
    `void` | `updateShort(java.lang.String columnName, short x)` JDBC 2.0 Update a column with a short value.
    `void` | `updateString(int columnIndex, java.lang.String x)` JDBC 2.0 Update a column with a String value.
    `void` | `updateString(java.lang.String columnName, java.lang.String x)` JDBC 2.0 Update a column with a String value.
    `void` | `updateTime(int columnIndex, java.sql.Time x)` JDBC 2.0 Update a column with a Time value.
    `void` | `updateTime(java.lang.String columnName, java.sql.Time x)` JDBC 2.0 Update a column with a Time value.
    `void` | `updateTimestamp(int columnIndex, java.sql.Timestamp x)` JDBC 2.0 Update a column with a Timestamp value.
    `void` | `updateTimestamp(java.lang.String columnName, java.sql.Timestamp x)` JDBC 2.0 Update a column with a Timestamp value.

    - ### Methods inherited from class com.mysql.jdbc.ResultSetImpl

      `arraysEqual, buildIndexMapping, checkClosed, checkColumnBounds, clearNextResult, clearWarnings, close, convertLongToUlong, copy, fastDateCreate, fastTimeCreate, fastTimestampCreate, findColumn, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getBytes, getBytesSize, getCalendarInstanceForSessionOrNew, getCharacterStream, getCharacterStream, getClob, getClob, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getDoubleInternal, getDoubleInternal, getExceptionInterceptor, getFetchDirection, getFetchSize, getFirstCharOfQuery, getFloat, getFloat, getGmtCalendar, getInstance, getInstance, getInt, getInt, getLong, getLong, getMetaData, getNativeArray, getNativeAsciiStream, getNativeBigDecimal, getNativeBigDecimal, getNativeBinaryStream, getNativeBlob, getNativeByte, getNativeByte, getNativeBytes, getNativeCharacterStream, getNativeClob, getNativeDate, getNativeDate, getNativeDateViaParseConversion, getNativeDouble, getNativeFloat, getNativeInt, getNativeInt, getNativeLong, getNativeLong, getNativeRef, getNativeShort, getNativeShort, getNativeString, getNativeTimestampViaParseConversion, getNativeTimeViaParseConversion, getNativeUnicodeStream, getNativeURL, getNextResultSet, getObject, getObject, getObject, getObject, getObject, getObject, getObjectStoredProc, getObjectStoredProc, getObjectStoredProc, getObjectStoredProc, getRef, getRef, getRow, getServerInfo, getShort, getShort, getStatement, getString, getString, getStringInternal, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getUpdateCount, getUpdateID, getURL, getURL, getWarnings, initializeFromCachedMetaData, initializeWithMetadata, isClosed, populateCachedMetaData, reallyResult, redefineFieldsForDBMD, setBinaryEncoded, setFetchDirection, setFetchSize, setFirstCharOfQuery, setNextResultSet, setOwningStatement, setResultSetType, setServerInfo, setStatementUsedForFetchingRows, setWrapperStatement, toString, updateArray, updateArray, updateClob, updateRef, updateRef, wasNull`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.sql.ResultSet

      `getHoldability, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getRowId, getRowId, getSQLXML, getSQLXML, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateRowId, updateRowId, updateSQLXML, updateSQLXML`

    - ### Methods inherited from interface java.sql.Wrapper

      `isWrapperFor, unwrap`

- - ### Field Detail

    - #### STREAM_DATA_MARKER

          static final byte[] STREAM_DATA_MARKER

      Marker for 'stream' data when doing INSERT rows

    - #### charConverter

          protected SingleByteCharsetConverter charConverter

    - #### inserter

          protected PreparedStatement inserter

      PreparedStatement used to insert data

    - #### updater

          protected PreparedStatement updater

      PreparedStatement used to delete data

  - ### Constructor Detail

    - #### UpdatableResultSet

          protected UpdatableResultSet(java.lang.String catalog,
                            Field[] fields,
                            RowData tuples,
                            MySQLConnection conn,
                            StatementImpl creatorStmt)
                                throws java.sql.SQLException

      Creates a new ResultSet object.
      Parameters:
        `catalog` - the database in use when we were created
        `fields` - an array of Field objects (basically, the ResultSet MetaData)
        `tuples` - actual row data
        `conn` - the Connection that created us.
        `creatorStmt` -
      Throws:
        `java.sql.SQLException`

  - ### Method Detail

    - #### absolute

          public boolean absolute(int row)
                           throws java.sql.SQLException

      JDBC 2.0

      Move to an absolute row number in the result set.

      If row is positive, moves to an absolute row with respect to the beginning of the result set. The first row is row 1, the second is row 2, etc.

      If row is negative, moves to an absolute row position with respect to the end of result set. For example, calling absolute(-1) positions the cursor on the last row, absolute(-2) indicates the next-to-last row, etc.

      An attempt to position the cursor beyond the first/last row in the result set, leaves the cursor before/after the first/last row, respectively.

      Note: Calling absolute(1) is the same as calling first(). Calling absolute(-1) is the same as calling last().

      Specified by:
        `absolute` in interface `java.sql.ResultSet`
      Overrides:
        `absolute` in class `ResultSetImpl`
      Parameters:
        `row` -
      Returns:
        true if on the result set, false if off.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or row is 0, or result set type is TYPE_FORWARD_ONLY.

    - #### afterLast

          public void afterLast()
                         throws java.sql.SQLException

      JDBC 2.0

      Moves to the end of the result set, just after the last row. Has no effect if the result set contains no rows.

      Specified by:
        `afterLast` in interface `java.sql.ResultSet`
      Overrides:
        `afterLast` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or result set type is TYPE_FORWARD_ONLY.

    - #### beforeFirst

          public void beforeFirst()
                           throws java.sql.SQLException

      JDBC 2.0

      Moves to the front of the result set, just before the first row. Has no effect if the result set contains no rows.

      Specified by:
        `beforeFirst` in interface `java.sql.ResultSet`
      Overrides:
        `beforeFirst` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or result set type is TYPE_FORWARD_ONLY

    - #### cancelRowUpdates

          public void cancelRowUpdates()
                                throws java.sql.SQLException

      JDBC 2.0 The cancelRowUpdates() method may be called after calling an updateXXX() method(s) and before calling updateRow() to rollback the updates made to a row. If no updates have been made or updateRow() has already been called, then this method has no effect.
      Specified by:
        `cancelRowUpdates` in interface `java.sql.ResultSet`
      Overrides:
        `cancelRowUpdates` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or if called when on the insert row.

    - #### checkRowPos

          protected void checkRowPos()
                              throws java.sql.SQLException

      Description copied from class: `ResultSetImpl`
      Ensures that the cursor is positioned on a valid row and that the result set is not closed
      Overrides:
        `checkRowPos` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException` - if the result set is not in a valid state for traversal

    - #### checkUpdatability

          protected void checkUpdatability()
                                    throws java.sql.SQLException

      Is this ResultSet updateable?
      Throws:
        `java.sql.SQLException`

    - #### deleteRow

          public void deleteRow()
                         throws java.sql.SQLException

      JDBC 2.0 Delete the current row from the result set and the underlying database. Cannot be called when on the insert row.
      Specified by:
        `deleteRow` in interface `java.sql.ResultSet`
      Overrides:
        `deleteRow` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or if called when on the insert row.
        `java.sql.SQLException` - if the ResultSet is not updatable or some other error occurs

    - #### first

          public boolean first()
                        throws java.sql.SQLException

      JDBC 2.0

      Moves to the first row in the result set.

      Specified by:
        `first` in interface `java.sql.ResultSet`
      Overrides:
        `first` in class `ResultSetImpl`
      Returns:
        true if on a valid row, false if no rows in the result set.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or result set type is TYPE_FORWARD_ONLY.

    - #### generateStatements

          protected void generateStatements()
                                     throws java.sql.SQLException

      Figure out whether or not this ResultSet is updateable, and if so, generate the PreparedStatements to support updates.
      Throws:
        `java.sql.SQLException`
        `NotUpdatable`

    - #### getConcurrency

          public int getConcurrency()
                             throws java.sql.SQLException

      JDBC 2.0 Return the concurrency of this result set. The concurrency used is determined by the statement that created the result set.
      Specified by:
        `getConcurrency` in interface `java.sql.ResultSet`
      Overrides:
        `getConcurrency` in class `ResultSetImpl`
      Returns:
        the concurrency type, CONCUR_READ_ONLY, etc.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### insertRow

          public void insertRow()
                         throws java.sql.SQLException

      JDBC 2.0 Insert the contents of the insert row into the result set and the database. Must be on the insert row when this method is called.
      Specified by:
        `insertRow` in interface `java.sql.ResultSet`
      Overrides:
        `insertRow` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, if called when not on the insert row, or if all non-nullable columns in the insert row have not been given a value

    - #### isAfterLast

          public boolean isAfterLast()
                              throws java.sql.SQLException

      JDBC 2.0

      Determine if the cursor is after the last row in the result set.

      Specified by:
        `isAfterLast` in interface `java.sql.ResultSet`
      Overrides:
        `isAfterLast` in class `ResultSetImpl`
      Returns:
        true if after the last row, false otherwise. Returns false when the result set contains no rows.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs.

    - #### isBeforeFirst

          public boolean isBeforeFirst()
                                throws java.sql.SQLException

      JDBC 2.0

      Determine if the cursor is before the first row in the result set.

      Specified by:
        `isBeforeFirst` in interface `java.sql.ResultSet`
      Overrides:
        `isBeforeFirst` in class `ResultSetImpl`
      Returns:
        true if before the first row, false otherwise. Returns false when the result set contains no rows.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs.

    - #### isFirst

          public boolean isFirst()
                          throws java.sql.SQLException

      JDBC 2.0

      Determine if the cursor is on the first row of the result set.

      Specified by:
        `isFirst` in interface `java.sql.ResultSet`
      Overrides:
        `isFirst` in class `ResultSetImpl`
      Returns:
        true if on the first row, false otherwise.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs.

    - #### isLast

          public boolean isLast()
                         throws java.sql.SQLException

      JDBC 2.0

      Determine if the cursor is on the last row of the result set. Note: Calling isLast() may be expensive since the JDBC driver might need to fetch ahead one row in order to determine whether the current row is the last row in the result set.

      Specified by:
        `isLast` in interface `java.sql.ResultSet`
      Overrides:
        `isLast` in class `ResultSetImpl`
      Returns:
        true if on the last row, false otherwise.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs.

    - #### isUpdatable

          boolean isUpdatable()

    - #### last

          public boolean last()
                       throws java.sql.SQLException

      JDBC 2.0

      Moves to the last row in the result set.

      Specified by:
        `last` in interface `java.sql.ResultSet`
      Overrides:
        `last` in class `ResultSetImpl`
      Returns:
        true if on a valid row, false if no rows in the result set.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or result set type is TYPE_FORWARD_ONLY.

    - #### moveToCurrentRow

          public void moveToCurrentRow()
                                throws java.sql.SQLException

      JDBC 2.0 Move the cursor to the remembered cursor position, usually the current row. Has no effect unless the cursor is on the insert row.
      Specified by:
        `moveToCurrentRow` in interface `java.sql.ResultSet`
      Overrides:
        `moveToCurrentRow` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or the result set is not updatable
        `java.sql.SQLException` - if the ResultSet is not updatable or some other error occurs

    - #### moveToInsertRow

          public void moveToInsertRow()
                               throws java.sql.SQLException

      JDBC 2.0 Move to the insert row. The current cursor position is remembered while the cursor is positioned on the insert row. The insert row is a special row associated with an updatable result set. It is essentially a buffer where a new row may be constructed by calling the updateXXX() methods prior to inserting the row into the result set. Only the updateXXX(), getXXX(), and insertRow() methods may be called when the cursor is on the insert row. All of the columns in a result set must be given a value each time this method is called before calling insertRow(). UpdateXXX()must be called before getXXX() on a column.
      Specified by:
        `moveToInsertRow` in interface `java.sql.ResultSet`
      Overrides:
        `moveToInsertRow` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or the result set is not updatable
        `NotUpdatable`

    - #### next

          public boolean next()
                       throws java.sql.SQLException

      A ResultSet is initially positioned before its first row, the first call to next makes the first row the current row; the second call makes the second row the current row, etc.

      If an input stream from the previous row is open, it is implicitly closed. The ResultSet's warning chain is cleared when a new row is read

      Specified by:
        `next` in interface `java.sql.ResultSet`
      Overrides:
        `next` in class `ResultSetImpl`
      Returns:
        true if the new current is valid; false if there are no more rows
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### prev

          public boolean prev()
                       throws java.sql.SQLException

      The prev method is not part of JDBC, but because of the architecture of this driver it is possible to move both forward and backward within the result set.

      If an input stream from the previous row is open, it is implicitly closed. The ResultSet's warning chain is cleared when a new row is read

      Overrides:
        `prev` in class `ResultSetImpl`
      Returns:
        true if the new current is valid; false if there are no more rows
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### previous

          public boolean previous()
                           throws java.sql.SQLException

      JDBC 2.0

      Moves to the previous row in the result set.

      Note: previous() is not the same as relative(-1) since it makes sense to call previous() when there is no current row.

      Specified by:
        `previous` in interface `java.sql.ResultSet`
      Overrides:
        `previous` in class `ResultSetImpl`
      Returns:
        true if on a valid row, false if off the result set.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or result set type is TYPE_FORWAR_DONLY.

    - #### realClose

          public void realClose(boolean calledExplicitly)
                         throws java.sql.SQLException

      Closes this ResultSet and releases resources.
      Specified by:
        `realClose` in interface `ResultSetInternalMethods`
      Overrides:
        `realClose` in class `ResultSetImpl`
      Parameters:
        `calledExplicitly` - was realClose called by the standard ResultSet.close() method, or was it closed internally by the driver?
      Throws:
        `java.sql.SQLException` - if an error occurs.

    - #### refreshRow

          public void refreshRow()
                          throws java.sql.SQLException

      JDBC 2.0 Refresh the value of the current row with its current value in the database. Cannot be called when on the insert row. The refreshRow() method provides a way for an application to explicitly tell the JDBC driver to refetch a row(s) from the database. An application may want to call refreshRow() when caching or prefetching is being done by the JDBC driver to fetch the latest value of a row from the database. The JDBC driver may actually refresh multiple rows at once if the fetch size is greater than one. All values are refetched subject to the transaction isolation level and cursor sensitivity. If refreshRow() is called after calling updateXXX(), but before calling updateRow() then the updates made to the row are lost. Calling refreshRow() frequently will likely slow performance.
      Specified by:
        `refreshRow` in interface `java.sql.ResultSet`
      Overrides:
        `refreshRow` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or if called when on the insert row.
        `NotUpdatable`

    - #### relative

          public boolean relative(int rows)
                           throws java.sql.SQLException

      JDBC 2.0

      Moves a relative number of rows, either positive or negative. Attempting to move beyond the first/last row in the result set positions the cursor before/after the the first/last row. Calling relative(0) is valid, but does not change the cursor position.

      Note: Calling relative(1) is different than calling next() since is makes sense to call next() when there is no current row, for example, when the cursor is positioned before the first row or after the last row of the result set.

      Specified by:
        `relative` in interface `java.sql.ResultSet`
      Overrides:
        `relative` in class `ResultSetImpl`
      Parameters:
        `rows` -
      Returns:
        true if on a row, false otherwise.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or there is no current row, or result set type is TYPE_FORWARD_ONLY.

    - #### rowDeleted

          public boolean rowDeleted()
                             throws java.sql.SQLException

      JDBC 2.0 Determine if this row has been deleted. A deleted row may leave a visible "hole" in a result set. This method can be used to detect holes in a result set. The value returned depends on whether or not the result set can detect deletions.
      Specified by:
        `rowDeleted` in interface `java.sql.ResultSet`
      Overrides:
        `rowDeleted` in class `ResultSetImpl`
      Returns:
        true if deleted and deletes are detected
      Throws:
        `java.sql.SQLException` - if a database-access error occurs
        `NotImplemented`
      See Also:
        `DatabaseMetaData.deletesAreDetected(int)`

    - #### rowInserted

          public boolean rowInserted()
                              throws java.sql.SQLException

      JDBC 2.0 Determine if the current row has been inserted. The value returned depends on whether or not the result set can detect visible inserts.
      Specified by:
        `rowInserted` in interface `java.sql.ResultSet`
      Overrides:
        `rowInserted` in class `ResultSetImpl`
      Returns:
        true if inserted and inserts are detected
      Throws:
        `java.sql.SQLException` - if a database-access error occurs
        `NotImplemented`
      See Also:
        `DatabaseMetaData.insertsAreDetected(int)`

    - #### rowUpdated

          public boolean rowUpdated()
                             throws java.sql.SQLException

      JDBC 2.0 Determine if the current row has been updated. The value returned depends on whether or not the result set can detect updates.
      Specified by:
        `rowUpdated` in interface `java.sql.ResultSet`
      Overrides:
        `rowUpdated` in class `ResultSetImpl`
      Returns:
        true if the row has been visibly updated by the owner or another, and updates are detected
      Throws:
        `java.sql.SQLException` - if a database-access error occurs
        `NotImplemented`
      See Also:
        `DatabaseMetaData.updatesAreDetected(int)`

    - #### setResultSetConcurrency

          protected void setResultSetConcurrency(int concurrencyFlag)

      Sets the concurrency type of this result set
      Overrides:
        `setResultSetConcurrency` in class `ResultSetImpl`
      Parameters:
        `concurrencyFlag` - the type of concurrency that this ResultSet should support.

    - #### syncUpdate

          protected void syncUpdate()
                             throws java.sql.SQLException

      Reset UPDATE prepared statement to value in current row. This_Row MUST point to current, valid row.
      Throws:
        `java.sql.SQLException`

    - #### updateAsciiStream

          public void updateAsciiStream(int columnIndex,
                               java.io.InputStream x,
                               int length)
                                 throws java.sql.SQLException

      JDBC 2.0 Update a column with an ascii stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateAsciiStream` in interface `java.sql.ResultSet`
      Overrides:
        `updateAsciiStream` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateAsciiStream

          public void updateAsciiStream(java.lang.String columnName,
                               java.io.InputStream x,
                               int length)
                                 throws java.sql.SQLException

      JDBC 2.0 Update a column with an ascii stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateAsciiStream` in interface `java.sql.ResultSet`
      Overrides:
        `updateAsciiStream` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
        `length` - of the stream
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateBigDecimal

          public void updateBigDecimal(int columnIndex,
                              java.math.BigDecimal x)
                                throws java.sql.SQLException

      JDBC 2.0 Update a column with a BigDecimal value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateBigDecimal` in interface `java.sql.ResultSet`
      Overrides:
        `updateBigDecimal` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateBigDecimal

          public void updateBigDecimal(java.lang.String columnName,
                              java.math.BigDecimal x)
                                throws java.sql.SQLException

      JDBC 2.0 Update a column with a BigDecimal value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateBigDecimal` in interface `java.sql.ResultSet`
      Overrides:
        `updateBigDecimal` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateBinaryStream

          public void updateBinaryStream(int columnIndex,
                                java.io.InputStream x,
                                int length)
                                  throws java.sql.SQLException

      JDBC 2.0 Update a column with a binary stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateBinaryStream` in interface `java.sql.ResultSet`
      Overrides:
        `updateBinaryStream` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateBinaryStream

          public void updateBinaryStream(java.lang.String columnName,
                                java.io.InputStream x,
                                int length)
                                  throws java.sql.SQLException

      JDBC 2.0 Update a column with a binary stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateBinaryStream` in interface `java.sql.ResultSet`
      Overrides:
        `updateBinaryStream` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
        `length` - of the stream
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateBlob

          public void updateBlob(int columnIndex,
                        java.sql.Blob blob)
                          throws java.sql.SQLException

      Specified by:
        `updateBlob` in interface `java.sql.ResultSet`
      Overrides:
        `updateBlob` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException`
      See Also:
        `ResultSet.updateBlob(int, Blob)`

    - #### updateBlob

          public void updateBlob(java.lang.String columnName,
                        java.sql.Blob blob)
                          throws java.sql.SQLException

      Specified by:
        `updateBlob` in interface `java.sql.ResultSet`
      Overrides:
        `updateBlob` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException`
      See Also:
        `ResultSet.updateBlob(String, Blob)`

    - #### updateBoolean

          public void updateBoolean(int columnIndex,
                           boolean x)
                             throws java.sql.SQLException

      JDBC 2.0 Update a column with a boolean value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateBoolean` in interface `java.sql.ResultSet`
      Overrides:
        `updateBoolean` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateBoolean

          public void updateBoolean(java.lang.String columnName,
                           boolean x)
                             throws java.sql.SQLException

      JDBC 2.0 Update a column with a boolean value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateBoolean` in interface `java.sql.ResultSet`
      Overrides:
        `updateBoolean` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateByte

          public void updateByte(int columnIndex,
                        byte x)
                          throws java.sql.SQLException

      JDBC 2.0 Update a column with a byte value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateByte` in interface `java.sql.ResultSet`
      Overrides:
        `updateByte` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateByte

          public void updateByte(java.lang.String columnName,
                        byte x)
                          throws java.sql.SQLException

      JDBC 2.0 Update a column with a byte value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateByte` in interface `java.sql.ResultSet`
      Overrides:
        `updateByte` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateBytes

          public void updateBytes(int columnIndex,
                         byte[] x)
                           throws java.sql.SQLException

      JDBC 2.0 Update a column with a byte array value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateBytes` in interface `java.sql.ResultSet`
      Overrides:
        `updateBytes` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateBytes

          public void updateBytes(java.lang.String columnName,
                         byte[] x)
                           throws java.sql.SQLException

      JDBC 2.0 Update a column with a byte array value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateBytes` in interface `java.sql.ResultSet`
      Overrides:
        `updateBytes` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateCharacterStream

          public void updateCharacterStream(int columnIndex,
                                   java.io.Reader x,
                                   int length)
                                     throws java.sql.SQLException

      JDBC 2.0 Update a column with a character stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateCharacterStream` in interface `java.sql.ResultSet`
      Overrides:
        `updateCharacterStream` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateCharacterStream

          public void updateCharacterStream(java.lang.String columnName,
                                   java.io.Reader reader,
                                   int length)
                                     throws java.sql.SQLException

      JDBC 2.0 Update a column with a character stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateCharacterStream` in interface `java.sql.ResultSet`
      Overrides:
        `updateCharacterStream` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `reader` - the new column value
        `length` - of the stream
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateClob

          public void updateClob(int columnIndex,
                        java.sql.Clob clob)
                          throws java.sql.SQLException

      Specified by:
        `updateClob` in interface `java.sql.ResultSet`
      Overrides:
        `updateClob` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException`
      See Also:
        `ResultSet.updateClob(int, Clob)`

    - #### updateDate

          public void updateDate(int columnIndex,
                        java.sql.Date x)
                          throws java.sql.SQLException

      JDBC 2.0 Update a column with a Date value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateDate` in interface `java.sql.ResultSet`
      Overrides:
        `updateDate` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateDate

          public void updateDate(java.lang.String columnName,
                        java.sql.Date x)
                          throws java.sql.SQLException

      JDBC 2.0 Update a column with a Date value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateDate` in interface `java.sql.ResultSet`
      Overrides:
        `updateDate` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateDouble

          public void updateDouble(int columnIndex,
                          double x)
                            throws java.sql.SQLException

      JDBC 2.0 Update a column with a Double value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateDouble` in interface `java.sql.ResultSet`
      Overrides:
        `updateDouble` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateDouble

          public void updateDouble(java.lang.String columnName,
                          double x)
                            throws java.sql.SQLException

      JDBC 2.0 Update a column with a double value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateDouble` in interface `java.sql.ResultSet`
      Overrides:
        `updateDouble` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateFloat

          public void updateFloat(int columnIndex,
                         float x)
                           throws java.sql.SQLException

      JDBC 2.0 Update a column with a float value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateFloat` in interface `java.sql.ResultSet`
      Overrides:
        `updateFloat` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateFloat

          public void updateFloat(java.lang.String columnName,
                         float x)
                           throws java.sql.SQLException

      JDBC 2.0 Update a column with a float value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateFloat` in interface `java.sql.ResultSet`
      Overrides:
        `updateFloat` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateInt

          public void updateInt(int columnIndex,
                       int x)
                         throws java.sql.SQLException

      JDBC 2.0 Update a column with an integer value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateInt` in interface `java.sql.ResultSet`
      Overrides:
        `updateInt` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateInt

          public void updateInt(java.lang.String columnName,
                       int x)
                         throws java.sql.SQLException

      JDBC 2.0 Update a column with an integer value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateInt` in interface `java.sql.ResultSet`
      Overrides:
        `updateInt` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateLong

          public void updateLong(int columnIndex,
                        long x)
                          throws java.sql.SQLException

      JDBC 2.0 Update a column with a long value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateLong` in interface `java.sql.ResultSet`
      Overrides:
        `updateLong` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateLong

          public void updateLong(java.lang.String columnName,
                        long x)
                          throws java.sql.SQLException

      JDBC 2.0 Update a column with a long value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateLong` in interface `java.sql.ResultSet`
      Overrides:
        `updateLong` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateNull

          public void updateNull(int columnIndex)
                          throws java.sql.SQLException

      JDBC 2.0 Give a nullable column a null value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateNull` in interface `java.sql.ResultSet`
      Overrides:
        `updateNull` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateNull

          public void updateNull(java.lang.String columnName)
                          throws java.sql.SQLException

      JDBC 2.0 Update a column with a null value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateNull` in interface `java.sql.ResultSet`
      Overrides:
        `updateNull` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateObject

          public void updateObject(int columnIndex,
                          java.lang.Object x)
                            throws java.sql.SQLException

      JDBC 2.0 Update a column with an Object value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Overrides:
        `updateObject` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateObject

          public void updateObject(int columnIndex,
                          java.lang.Object x,
                          int scale)
                            throws java.sql.SQLException

      JDBC 2.0 Update a column with an Object value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Overrides:
        `updateObject` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `scale` - For java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types this is the number of digits after the decimal. For all other types this value will be ignored.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateObjectInternal

          protected void updateObjectInternal(int columnIndex,
                                  java.lang.Object x,
                                  java.lang.Integer targetType,
                                  int scaleOrLength)
                                       throws java.sql.SQLException

      Internal setObject implementation. Although targetType is not part of default ResultSet methods signatures, it is used for type conversions from JDBC42UpdatableResultSet new JDBC 4.2 updateObject() methods.
      Parameters:
        `columnIndex` -
        `x` -
        `targetType` -
        `scaleOrLength` -
      Throws:
        `java.sql.SQLException`

    - #### updateObject

          public void updateObject(java.lang.String columnName,
                          java.lang.Object x)
                            throws java.sql.SQLException

      JDBC 2.0 Update a column with an Object value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Overrides:
        `updateObject` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateObject

          public void updateObject(java.lang.String columnName,
                          java.lang.Object x,
                          int scale)
                            throws java.sql.SQLException

      JDBC 2.0 Update a column with an Object value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Overrides:
        `updateObject` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
        `scale` - For java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types this is the number of digits after the decimal. For all other types this value will be ignored.
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateRow

          public void updateRow()
                         throws java.sql.SQLException

      JDBC 2.0 Update the underlying database with the new contents of the current row. Cannot be called when on the insert row.
      Specified by:
        `updateRow` in interface `java.sql.ResultSet`
      Overrides:
        `updateRow` in class `ResultSetImpl`
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or if called when on the insert row
        `NotUpdatable`

    - #### updateShort

          public void updateShort(int columnIndex,
                         short x)
                           throws java.sql.SQLException

      JDBC 2.0 Update a column with a short value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateShort` in interface `java.sql.ResultSet`
      Overrides:
        `updateShort` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateShort

          public void updateShort(java.lang.String columnName,
                         short x)
                           throws java.sql.SQLException

      JDBC 2.0 Update a column with a short value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateShort` in interface `java.sql.ResultSet`
      Overrides:
        `updateShort` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateString

          public void updateString(int columnIndex,
                          java.lang.String x)
                            throws java.sql.SQLException

      JDBC 2.0 Update a column with a String value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateString` in interface `java.sql.ResultSet`
      Overrides:
        `updateString` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateString

          public void updateString(java.lang.String columnName,
                          java.lang.String x)
                            throws java.sql.SQLException

      JDBC 2.0 Update a column with a String value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateString` in interface `java.sql.ResultSet`
      Overrides:
        `updateString` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateTime

          public void updateTime(int columnIndex,
                        java.sql.Time x)
                          throws java.sql.SQLException

      JDBC 2.0 Update a column with a Time value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateTime` in interface `java.sql.ResultSet`
      Overrides:
        `updateTime` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateTime

          public void updateTime(java.lang.String columnName,
                        java.sql.Time x)
                          throws java.sql.SQLException

      JDBC 2.0 Update a column with a Time value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateTime` in interface `java.sql.ResultSet`
      Overrides:
        `updateTime` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateTimestamp

          public void updateTimestamp(int columnIndex,
                             java.sql.Timestamp x)
                               throws java.sql.SQLException

      JDBC 2.0 Update a column with a Timestamp value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateTimestamp` in interface `java.sql.ResultSet`
      Overrides:
        `updateTimestamp` in class `ResultSetImpl`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs

    - #### updateTimestamp

          public void updateTimestamp(java.lang.String columnName,
                             java.sql.Timestamp x)
                               throws java.sql.SQLException

      JDBC 2.0 Update a column with a Timestamp value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.
      Specified by:
        `updateTimestamp` in interface `java.sql.ResultSet`
      Overrides:
        `updateTimestamp` in class `ResultSetImpl`
      Parameters:
        `columnName` - the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if a database-access error occurs