Home » hsqldb_1_8_0_10 » org.hsqldb » [javadoc | source]
org.hsqldb
public class: jdbcResultSet [javadoc | source]
java.lang.Object
   org.hsqldb.jdbcResultSet

All Implemented Interfaces:
    ResultSet, ResultSetMetaData

Implements both the java.sql.ResultSet and java.sql.ResultSetMetaData interfaces.

In short:

The following is composed of three sections:

  1. The generic overview for ResultSet.
  2. The generic overview for ResultSetMetaData.
  3. A discussion of some HSQLDB-specific concerns.

From ResultSet:

A table of data representing a database result set, which is usually generated by executing a statement that queries the database.

A ResultSet object maintains a cursor pointing to its current row of data. Initially the cursor is positioned before the first row. The next method moves the cursor to the next row, and because it returns false when there are no more rows in the ResultSet object, it can be used in a while loop to iterate through the result set.

A default ResultSet object is not updatable and has a cursor that moves forward only. Thus, you can iterate through it only once and only from the first row to the last row. It is possible to produce ResultSet objects that are scrollable and/or updatable. The following code fragment, in which con is a valid Connection object, illustrates how to make a result set that is scrollable and insensitive to updates by others, and that is updatable. See ResultSet fields for other options.


Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
// rs will be scrollable, will not show changes made by others,
// and will be updatable

The ResultSet interface provides getter methods (getBoolean, getLong, and so on) for retrieving column values from the current row. Values can be retrieved using either the index number of the column or the name of the column. In general, using the column index will be more efficient. Columns are numbered from 1. For maximum portability, result set columns within each row should be read in left-to-right order, and each column should be read only once.

For the getter methods, a JDBC driver attempts to convert the underlying data to the Java type specified in the getter method and returns a suitable Java value. The JDBC specification has a table showing the allowable mappings from SQL types to Java types that can be used by the ResultSet getter methods.

Column names used as input to getter methods are case insensitive. When a getter method is called with a column name and several columns have the same name, the value of the first matching column will be returned. The column name option is designed to be used when column names are used in the SQL query that generated the result set. For columns that are NOT explicitly named in the query, it is best to use column numbers. If column names are used, there is no way for the programmer to guarantee that they actually refer to the intended columns.

A set of updater methods were added to this interface in the JDBC 2.0 API (JavaTM 2 SDK, Standard Edition, version 1.2). The comments regarding parameters to the getter methods also apply to parameters to the updater methods.

The updater methods may be used in two ways:

  1. to update a column value in the current row. In a scrollable ResultSet object, the cursor can be moved backwards and forwards, to an absolute position, or to a position relative to the current row. The following code fragment updates the NAME column in the fifth row of the ResultSet object rs and then uses the method updateRow to update the data source table from which rs was derived.
    
    rs.absolute(5); // moves the cursor to the fifth row of rs
    rs.updateString("NAME", "AINSWORTH"); // updates the
    // NAME column of row 5 to be AINSWORTH
    rs.updateRow(); // updates the row in the data source
    
    
  2. to insert column values into the insert row. An updatable ResultSet object has a special row associated with it that serves as a staging area for building a row to be inserted. The following code fragment moves the cursor to the insert row, builds a three-column row, and inserts it into rs and into the data source table using the method insertRow.
    
    rs.moveToInsertRow(); // moves cursor to the insert row
    rs.updateString(1, "AINSWORTH"); // updates the
    // first column of the insert row to be AINSWORTH
    rs.updateInt(2,35); // updates the second column to be 35
    rs.updateBoolean(3, true); // updates the third row to true
    rs.insertRow();
    rs.moveToCurrentRow();
    
    

A ResultSet object is automatically closed when the Statement object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results.

The number, types and properties of a ResultSet object's columns are provided by the ResulSetMetaData object returned by the ResultSet.getMetaData method.

From ResultSetMetaData:

An object that can be used to get information about the types and properties of the columns in a ResultSet object. The following code fragment creates the ResultSet object rs, creates the ResultSetMetaData object rsmd, and uses rsmd to find out how many columns rs has and whether the first column in rs can be used in a WHERE clause.


ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
boolean b = rsmd.isSearchable(1);

HSQLDB-Specific Information:

As stated above, jdbcResultSet implements both the ResultSet and ResultSetMetaData interfaces. However, to gain access to the interface methods of ResultSetMetaData in a driver independent way, the traditional call to the getMetaData method should be used, rather than casting objects known to be of type jdbcResultSet to type ResultSetMetaData.

A ResultSet object generated by HSQLDB is, as is standard JDBC behavior, by default of ResultSet.TYPE_FORWARD_ONLY and does not allow the use of absolute and relative positioning methods. However, starting with 1.7.0, if a statement is created with:

Statement stmt createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

then the ResultSet objects it produces support using all of the absolute and relative positioning methods of JDBC2 to set the position of the current row, for example:

rs.absolute(5);
String fifthRowValue = rs.getString(1);
rs.relative(4);
String ninthRowValue = rs.getString(1);

Note: An HSQLDB ResultSet object persists, even after its connection is closed. This is regardless of the operational mode of the Database from which it came. That is, they persist whether originating from a Server, WebServer or in-process mode Database.

Up to and including HSQLDB 1.7.0, there is no support for any of the methods introduced in JDBC 2 relating to updateable result sets. These methods include all updateXXX methods, as well as the #insertRow , #updateRow , #deleteRow , #moveToInsertRow (and so on) methods. A call to any such unsupported method will simply result in throwing a SQLException which states that the function is not supported. It is not anticipated that HSQLDB-native support for updateable ResultSet objects will be introduced in the HSQLDB 1.7.x series. Such features may be part of the HSQLDB 2.x series, but no decisions have been made at this point.

JRE 1.1.x Notes:

In general, JDBC 2 support requires Java 1.2 and above, and JDBC 3 requires Java 1.4 and above. In HSQLDB, support for methods introduced in different versions of JDBC depends on the JDK version used for compiling and building HSQLDB.

Since 1.7.0, it is possible to build the product so that all JDBC 2 methods can be called while executing under the version 1.1.x Java Runtime EnvironmentTM. However, some of these method calls require int values that are defined only in the JDBC 2 or greater version of the ResultSet interface. For this reason, when the product is compiled under JDK 1.1.x, these values are defined in here, in this class.

In a JRE 1.1.x environment, calling JDBC 2 methods that take or return the JDBC2-only ResultSet values can be achieved by referring to them in parameter specifications and return value comparisons, respectively, as follows:

jdbcResultSet.FETCH_FORWARD
jdbcResultSet.TYPE_FORWARD_ONLY
jdbcResultSet.TYPE_SCROLL_INSENSITIVE
jdbcResultSet.CONCUR_READ_ONLY

However, please note that code written in such a manner will not be compatible for use with other JDBC 2 drivers, since they expect and use ResultSet, rather than jdbcResultSet. Also note, this feature is offered solely as a convenience to developers who must work under JDK 1.1.x due to operating constraints, yet wish to use some of the more advanced features available under the JDBC 2 specification.

ResultSetMetaData Implementation Notes:

HSQLDB supports a subset of ResultSetMetaData interface. The JDBC specification for ResultSetMetaData is in part very vague. Several methods are exclusively for columns that are database table columns. There is a complete lack of specification on how these methods are supposed to distinguish between updatable and non-updatable ResultSet objects or between columns that are database table columns and those that are results of calculations or functions. This causes potential incompatibility between interpretations of the specifications in different JDBC drivers.

As such, DatabaseMetadata reporting will be enhanced in future 1.7.x and greater versions, but enhancements to reporting ResultSetMetaData have to be considered carefully as they impose a performance penalty on all ResultSet objects returned from HSQLDB, whether or not the ResultSetMetaData methods are used.

(fredt@users)
(boucherb@users)

Field Summary
 Statement sqlStatement    The Statement that generated this result. 
 int rsType    The direction of this result. 
Constructor:
 jdbcResultSet(Result r,
    HsqlProperties props) throws SQLException 
    Constructs a new jdbcResultSet object using the specified org.hsqldb.Result.
    Parameters:
    r - the internal result form that the new jdbcResultSet represents
    Throws:
    SQLException - when the supplied Result is of type org.hsqldb.Result.ERROR
    exception: SQLException - when the supplied Result is of type org.hsqldb.Result.ERROR
Method from org.hsqldb.jdbcResultSet Summary:
absolute,   afterLast,   beforeFirst,   cancelRowUpdates,   clearWarnings,   close,   deleteRow,   findColumn,   first,   getArray,   getArray,   getAsciiStream,   getAsciiStream,   getBigDecimal,   getBigDecimal,   getBigDecimal,   getBigDecimal,   getBinaryStream,   getBinaryStream,   getBlob,   getBlob,   getBoolean,   getBoolean,   getByte,   getByte,   getBytes,   getBytes,   getCatalogName,   getCharacterStream,   getCharacterStream,   getClob,   getClob,   getColumnClassName,   getColumnCount,   getColumnDisplaySize,   getColumnLabel,   getColumnName,   getColumnType,   getColumnTypeName,   getConcurrency,   getCursorName,   getDate,   getDate,   getDate,   getDate,   getDouble,   getDouble,   getFetchDirection,   getFetchSize,   getFloat,   getFloat,   getInt,   getInt,   getLong,   getLong,   getMetaData,   getObject,   getObject,   getObject,   getObject,   getPrecision,   getRef,   getRef,   getRow,   getScale,   getSchemaName,   getShort,   getShort,   getStatement,   getString,   getString,   getTableName,   getTime,   getTime,   getTime,   getTime,   getTimestamp,   getTimestamp,   getTimestamp,   getTimestamp,   getType,   getURL,   getURL,   getUnicodeStream,   getUnicodeStream,   getUpdateCount,   getWarnings,   insertRow,   isAfterLast,   isAutoIncrement,   isBeforeFirst,   isCaseSensitive,   isCurrency,   isDefinitelyWritable,   isFirst,   isLast,   isNullable,   isReadOnly,   isResult,   isSearchable,   isSigned,   isWritable,   last,   moveToCurrentRow,   moveToInsertRow,   next,   previous,   refreshRow,   relative,   rowDeleted,   rowInserted,   rowUpdated,   setFetchDirection,   setFetchSize,   updateArray,   updateArray,   updateAsciiStream,   updateAsciiStream,   updateBigDecimal,   updateBigDecimal,   updateBinaryStream,   updateBinaryStream,   updateBlob,   updateBlob,   updateBoolean,   updateBoolean,   updateByte,   updateByte,   updateBytes,   updateBytes,   updateCharacterStream,   updateCharacterStream,   updateClob,   updateClob,   updateDate,   updateDate,   updateDouble,   updateDouble,   updateFloat,   updateFloat,   updateInt,   updateInt,   updateLong,   updateLong,   updateNull,   updateNull,   updateObject,   updateObject,   updateObject,   updateObject,   updateRef,   updateRef,   updateRow,   updateShort,   updateShort,   updateString,   updateString,   updateTime,   updateTime,   updateTimestamp,   updateTimestamp,   wasNull
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.hsqldb.jdbcResultSet Detail:
 public boolean absolute(int row) throws SQLException 
    Moves the cursor to the given row number in this ResultSet object.

    If the row number is positive, the cursor moves to the given row number with respect to the beginning of the result set. The first row is row 1, the second is row 2, and so on.

    If the given row number is negative, the cursor moves to an absolute row position with respect to the end of the result set. For example, calling the method absolute(-1) positions the cursor on the last row; calling the method absolute(-2) moves the cursor to the next-to-last row, and so on.

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

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

 public  void afterLast() throws SQLException 
    Moves the cursor to the end of this ResultSet object, just after the last row. This method has no effect if the result set contains no rows.

 public  void beforeFirst() throws SQLException 
    Moves the cursor to the front of this ResultSet object, just before the first row. This method has no effect if the result set contains no rows.

 public  void cancelRowUpdates() throws SQLException 
    Cancels the updates made to the current row in this ResultSet object. This method may be called after calling an updater method(s) and before calling the method updateRow to roll back the updates made to a row. If no updates have been made or updateRow has already been called, this method has no effect.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void clearWarnings() throws SQLException 
    Clears all warnings reported on this ResultSet object. After this method is called, the method getWarnings returns null until a new warning is reported for this ResultSet object.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not produce SQLWarning objects, so this method is simply ignored.

 public  void close() throws SQLException 
    Releases this ResultSet object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed.

    Note: A ResultSet object is automatically closed by the Statement object that generated it when that Statement object is closed, re-executed, or is used to retrieve the next result from a sequence of multiple results. A ResultSet object is also automatically closed when it is garbage collected.

 public  void deleteRow() throws SQLException 
    Deletes the current row from this ResultSet object and from the underlying database. This method cannot be called when the cursor is on the insert row.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public int findColumn(String columnName) throws SQLException 
    Maps the given ResultSet column name to its ResultSet column index.

 public boolean first() throws SQLException 
    Moves the cursor to the first row in this ResultSet object.

 public Array getArray(int i) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as an Array object in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public Array getArray(String colName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as an Array object in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public InputStream getAsciiStream(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a stream of ASCII characters. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARCHAR values. The JDBC driver will do any necessary conversion from the database format into ASCII.

    Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method InputStream.available is called whether there is data available or not.

    HSQLDB-Specific Information:

    The limitation noted above does not apply to HSQLDB.

    Up to and including 1.6.1, getAsciiStream was identical to getUnicodeStream and both simply returned a byte stream constructed from the raw getBytes representation. Starting with 1.7.0, this has been updated to comply with the java.sql specification. When the column is of type CHAR and its variations, it requires no conversion since it is represented internally already as Java Strings. When the column is not of type CHAR and its variations, the returned stream is based on a conversion to the Java String representation of the value. In either case, the obtained stream is always equivalent to a stream of the low order bytes from the value's String representation.

    HSQLDB SQL CHAR and its variations are all Unicode strings internally, so the recommended alternatives to this method are getString , getUnicodeStream (deprecated) and new to 1.7.0: getCharacterStream (now prefered over the deprecated getUnicodeStream alternative).

 public InputStream getAsciiStream(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a stream of ASCII characters. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARCHAR values. The JDBC driver will do any necessary conversion from the database format into ASCII.

    Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method available is called whether there is data available or not.

 public BigDecimal getBigDecimal(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.math.BigDecimal with full precision.

 public BigDecimal getBigDecimal(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.math.BigDecimal with full precision.

 public BigDecimal getBigDecimal(int columnIndex,
    int scale) throws SQLException 
Deprecated!
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.BigDecimal in the Java programming language.

    HSQLDB-Specific Information:

    Beginning with 1.7.0, HSQLDB converts the result and sets the scale with BigDecimal.ROUND_HALF_DOWN

 public BigDecimal getBigDecimal(String columnName,
    int scale) throws SQLException 
Deprecated!
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.math.BigDecimal in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB ignores the scale parameter.

 public InputStream getBinaryStream(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a binary stream of uninterpreted bytes. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARBINARY values.

    Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method InputStream.available is called whether there is data available or not.

 public InputStream getBinaryStream(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a stream of uninterpreted bytes. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARBINARY values.

    Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method available is called whether there is data available or not.

 public Blob getBlob(int i) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a Blob object in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public Blob getBlob(String colName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a Blob object in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public boolean getBoolean(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a boolean in the Java programming language.

 public boolean getBoolean(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a boolean in the Java programming language.

 public byte getByte(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a byte in the Java programming language.

 public byte getByte(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a byte in the Java programming language.

 public byte[] getBytes(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a byte array in the Java programming language. The bytes represent the raw values returned by the driver.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB returns correct values for columns of type BINARY, CHAR and their variations. For other types, it returns the byte[] for the String representation of the value.

 public byte[] getBytes(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a byte array in the Java programming language. The bytes represent the raw values returned by the driver.

 public String getCatalogName(int column) throws SQLException 
    Gets the designated column's table's catalog name.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDD does not support catalogs.

    This method always returns an empty String.

    See discussion at: #getMetaData

 public Reader getCharacterStream(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object.

    HSQLDB-Specific Information:

    This method is new to HSQLDB 1.7.0. Previous versions did not implement this, thowing a SQLException instead.

 public Reader getCharacterStream(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object.

    HSQLDB-Specific Information:

    This method is new to HSQLDB 1.7.0. Previous versions did not implement this, thowing a SQLException instead.

 public Clob getClob(int i) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a Clob object in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public Clob getClob(String colName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a Clob object in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public String getColumnClassName(int column) throws SQLException 
    Returns the fully-qualified name of the Java class whose instances are manufactured if the method ResultSet.getObject is called to retrieve a value from the column. ResultSet.getObject may return a subclass of the class returned by this method.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

    See discussion at: #getMetaData

 public int getColumnCount() throws SQLException 
    Returns the number of columns in this ResultSet object.

    HSQLDB-Specific Information:

    See discussion at: #getMetaData

 public int getColumnDisplaySize(int column) throws SQLException 
    Indicates the designated column's normal maximum width in characters.

    HSQLDB-Specific Information:

    Up to and including HSQLDB 1.7.0, this method always returns 0 (no limit/unknown).

    See discussion at: #getMetaData

 public String getColumnLabel(int column) throws SQLException 
    Gets the designated column's suggested title for use in printouts and displays.

    HSQLDB-Specific Information:

    In HSQLDB a ResultSet column label is determined in the following order of precedence:

    1. The label (alias) specified in the generating query.
    2. The name of the underlying column, if no label is specified.
      This also applies to aggregate functions.
    3. An empty String.

    See discussion at: #getMetaData

 public String getColumnName(int column) throws SQLException 
    Get the designated column's name.

    HSQLDB-Specific Information:

    In HSQLDB a ResultSet column name is determined in the following order of prcedence:

    1. The name of the underlying columnm, if the ResultSet column represents a column in a table.
    2. The label or alias specified in the generating query.
    3. An empty String.

    If the jdbc.get_column_name property of the database has been set to false, this method returns the same value as #getColumnLabel(int) .

    See discussion at: #getMetaData

 public int getColumnType(int column) throws SQLException 
    Retrieves the designated column's SQL type.

    HSQLDB-Specific Information:

    This reports the SQL type of the column. HSQLDB can return Objects in any Java integral type wider than Integer for an SQL integral type.

    See discussion at: #getMetaData

 public String getColumnTypeName(int column) throws SQLException 
    Retrieves the designated column's database-specific type name.

    HSQLDB-Specific Information:

    See above at: (@link #getColumnType)

    See discussion at: #getMetaData

 public int getConcurrency() throws SQLException 
    Retrieves the concurrency mode of this ResultSet object. The concurrency used is determined by the Statement object that created the result set.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB supports only and thus always returns CONCUR_READ_ONLY.

 public String getCursorName() throws SQLException 
    Retrieves the name of the SQL cursor used by this ResultSet object.

    In SQL, a result table is retrieved through a cursor that is named. The current row of a result set can be updated or deleted using a positioned update/delete statement that references the cursor name. To insure that the cursor has the proper isolation level to support update, the cursor's SELECT statement should be of the form SELECT FOR UPDATE. If FOR UPDATE is omitted, the positioned updates may fail.

    The JDBC API supports this SQL feature by providing the name of the SQL cursor used by a ResultSet object. The current row of a ResultSet object is also the current row of this SQL cursor.

    Note: If positioned update is not supported, a SQLException is thrown.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public Date getDate(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.

 public Date getDate(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.

 public Date getDate(int columnIndex,
    Calendar cal) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the date if the underlying database does not store timezone information.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public Date getDate(String columnName,
    Calendar cal) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the date if the underlying database does not store timezone information.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public double getDouble(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a double in the Java programming language.

 public double getDouble(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a double in the Java programming language.

 public int getFetchDirection() throws SQLException 
    Retrieves the fetch direction for this ResultSet object.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 returns result sets as a whole, so the value returned by this method has no real meaning.

    Calling this method always returns FETCH_FORWARD.

 public int getFetchSize() throws SQLException 
    Retrieves the fetch size for this ResultSet object.

    HSQLDB-Specific Information:

    As HSQLDB builds and returns the whole result set as a whole, the value returned (1) has no significance.

 public float getFloat(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a float in the Java programming language.

 public float getFloat(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a float in the Java programming language.

 public int getInt(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as an int in the Java programming language.

 public int getInt(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as an int in the Java programming language.

 public long getLong(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a long in the Java programming language.

 public long getLong(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a long in the Java programming language.

 public ResultSetMetaData getMetaData() throws SQLException 
    Retrieves the number, types and properties of this ResultSet object's columns.

    HSQLDB-Specific Information:

    jdbcResultSet implements both the ResultSet and ResultSetMetaData interfaces. However, to gain access to the interface methods of ResultSetMetaData in a driver independent way, the traditional call to this method should be used, rather than casting objects known to be of type jdbcResultSet to type ResultSetMetaData.

    Example:

    The following code fragment creates a ResultSet object rs, creates a ResultSetMetaData object rsmd, and uses rsmd to find out how many columns rs has and whether the first column in rs can be used in a WHERE clause.

    ResultSet rs = stmt.executeQuery ( "SELECT a, b, c FROM TABLE2");
    ResultSetMetaData rsmd = rs.getMetaData();
    int numberOfColumns = rsmd.getColumnCount();
    boolean b = rsmd.isSearchable(1);

    Warning:

    Up to and including 1.7.1, HSQLDB does not generate accurate ResultSetMetaData. Below are the points to consider:

    1. #isCurrency always returns false
    2. #isNullable always returns columnNullableUnknown
    3. #getColumnDisplaySize returns zero for all valid column numbers
    4. #getSchemaName always returns ""
    5. #getPrecision always returns zero
    6. #getScale always returns zero
    7. #getCatalogName always returns ""

 public Object getObject(int columnIndex) throws SQLException 
    Gets the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.

    This method will return the value of the given column as a Java object. The type of the Java object will be the default Java object type corresponding to the column's SQL type, following the mapping for built-in types specified in the JDBC specification. If the value is an SQL NULL, the driver returns a Java null.

    This method may also be used to read datatabase-specific abstract data types. In the JDBC 2.0 API, the behavior of method getObject is extended to materialize data of SQL user-defined types. When a column contains a structured or distinct value, the behavior of this method is as if it were a call to: getObject(columnIndex, this.getStatement().getConnection().getTypeMap()).

 public Object getObject(String columnName) throws SQLException 
    Gets the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.

    This method will return the value of the given column as a Java object. The type of the Java object will be the default Java object type corresponding to the column's SQL type, following the mapping for built-in types specified in the JDBC specification. If the value is an SQL NULL, the driver returns a Java null.

    This method may also be used to read datatabase-specific abstract data types.

    In the JDBC 2.0 API, the behavior of the method getObject is extended to materialize data of SQL user-defined types. When a column contains a structured or distinct value, the behavior of this method is as if it were a call to: getObject(columnIndex, this.getStatement().getConnection().getTypeMap()).

 public Object getObject(int i,
    Map map) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language. If the value is an SQL NULL, the driver returns a Java null. This method uses the given Map object for the custom mapping of the SQL structured or distinct type that is being retrieved.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public Object getObject(String colName,
    Map map) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language. If the value is an SQL NULL, the driver returns a Java null. This method uses the specified Map object for custom mapping if appropriate.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public int getPrecision(int column) throws SQLException 
    Get the designated column's number of decimal digits.

    HSQLDB-Specific Information:

    Up to and including HSQLDB 1.7.0, this method always returns 0 (unknown/no limit).

    See discussion at: #getMetaData

 public Ref getRef(int i) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a Ref object in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public Ref getRef(String colName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a Ref object in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public int getRow() throws SQLException 
    Retrieves the current row number. The first row is number 1, the second number 2, and so on.

 public int getScale(int column) throws SQLException 
    Gets the designated column's number of digits to right of the decimal point.

    HSQLDB-Specific Information:

    Up to and including HSQLDB 1.7.0, this method always returns 0 (unknown).

    See discussion at: #getMetaData

 public String getSchemaName(int column) throws SQLException 
    Get the designated column's table's schema.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDD does not support schema names.

    This method always returns an empty String.

    See discussion at: #getMetaData

 public short getShort(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a short in the Java programming language.

 public short getShort(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a short in the Java programming language.

 public Statement getStatement() throws SQLException 
    Retrieves the Statement object that produced this ResultSet object. If the result set was generated some other way, such as by a DatabaseMetaData method, this method returns null.

 public String getString(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language.

 public String getString(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language.

 public String getTableName(int column) throws SQLException 
    Gets the designated column's table name.

    HSQLDB-Specific Information:

    See discussion at: #getMetaData

 public Time getTime(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.

 public Time getTime(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.

 public Time getTime(int columnIndex,
    Calendar cal) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the time if the underlying database does not store timezone information.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public Time getTime(String columnName,
    Calendar cal) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the time if the underlying database does not store timezone information.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public Timestamp getTimestamp(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.

 public Timestamp getTimestamp(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object.

 public Timestamp getTimestamp(int columnIndex,
    Calendar cal) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming anguage. This method uses the given calendar to construct an appropriate millisecond value for the timestamp if the underlying database does not store timezone information.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public Timestamp getTimestamp(String columnName,
    Calendar cal) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the timestamp if the underlying database does not store timezone information.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public int getType() throws SQLException 
    Retrieves the type of this ResultSet object. The type is determined by the Statement object that created the result set.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support and thus never returns ResultSet.TYPE_SCROLL_SENSITIVE

 public URL getURL(int columnIndex) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.net.URL object in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public URL getURL(String columnName) throws SQLException 
    Retrieves the value of the designated column in the current row of this ResultSet object as a java.net.URL object in the Java programming language.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support this feature.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public InputStream getUnicodeStream(int columnIndex) throws SQLException 
Deprecated! use - getCharacterStream in place of getUnicodeStream

    Retrieves the value of the designated column in the current row of this ResultSet object as as a stream of two-byte Unicode characters. The first byte is the high byte; the second byte is the low byte. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARCHARvalues. The JDBC driver will do any necessary conversion from the database format into Unicode.

    Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method InputStream.available is called, whether there is data available or not.

    HSQLDB-Specific Information:

    The limitation noted above does not apply to HSQLDB.

    Up to and including 1.6.1, getUnicodeStream (and getAsciiStream) both simply returned a byte stream constructed from the raw getBytes representation. Starting with 1.7.0, this has been corrected to comply with the java.sql specification. When the column is of type CHAR and its variations, it requires no conversion since it is represented internally already as Java Strings. When the column is not of type CHAR and its variations, the returned stream is based on a conversion to the Java String representation of the value. In either case, the obtained stream is always equivalent to a stream of bytes from the value's String representation, with high-byte first.

 public InputStream getUnicodeStream(String columnName) throws SQLException 
Deprecated! use - getCharacterStream instead

    Retrieves the value of the designated column in the current row of this ResultSet object as a stream of two-byte Unicode characters. The first byte is the high byte; the second byte is the low byte. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARCHAR values. The JDBC technology-enabled driver will do any necessary conversion from the database format into Unicode.

    Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method InputStream.available is called, whether there is data available or not.

 int getUpdateCount() 
    If executing my statement updated rows on the database, how many were affected?
 public SQLWarning getWarnings() throws SQLException 
    Retrieves the first warning reported by calls on this ResultSet object. Subsequent warnings on this ResultSet object will be chained to the SQLWarning object that this method returns.

    The warning chain is automatically cleared each time a new row is read. This method may not be called on a ResultSet object that has been closed; doing so will cause an SQLException to be thrown.

    Note: This warning chain only covers warnings caused by ResultSet methods. Any warning caused by Statement methods (such as reading OUT parameters) will be chained on the Statement object.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not produce SQLWarning objects. This method always returns null.

 public  void insertRow() throws SQLException 
    Inserts the contents of the insert row into this ResultSet object and into the database. The cursor must be on the insert row when this method is called.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public boolean isAfterLast() throws SQLException 
    Retrieves whether the cursor is after the last row in this ResultSet object.

 public boolean isAutoIncrement(int column) throws SQLException 
    Indicates whether the designated column is automatically numbered, thus read-only.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 does not support this feature.

    The return value from this method depends on whether the jdbc.strict_md connection property is specified as true. When this property is true: Calling this method always throws a SQLException, stating that the function is not supported.

    See discussion at: #getMetaData

 public boolean isBeforeFirst() throws SQLException 
    Retrieves whether the cursor is before the first row in this ResultSet object.

 public boolean isCaseSensitive(int column) throws SQLException 
    Indicates whether a column's case matters.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 does not support this feature.

    The return value from this method depends on whether the jdbc.strict_md connection property is specified as true. When this property is true: Calling this method always throws a SQLException, stating that the function is not supported.

    See discussion at: #getMetaData

 public boolean isCurrency(int column) throws SQLException 
    Indicates whether the designated column is a cash value.

    HSQLDB-Specific Information:

    Up to and including HSQLDB 1.7.0, this method always returns false.

    See discussion at: #getMetaData

 public boolean isDefinitelyWritable(int column) throws SQLException 
    Indicates whether a write on the designated column will definitely succeed.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 does not support this feature.

    The return value from this method depends on whether the jdbc.strict_md connection property is specified as true. When this property is true: Calling this method always throws a SQLException, stating that the function is not supported.

    See discussion at: #getMetaData

 public boolean isFirst() throws SQLException 
    Retrieves whether the cursor is on the first row of this ResultSet object.

 public boolean isLast() throws SQLException 
    Retrieves whether the cursor is on the last row of this ResultSet object. Note: Calling the method isLast may be expensive because 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.

    HSQLDB-Specific Information:

    Up to and including HSQLDB 1.7.0, this method is not terribly expensive, since the entire result is fetched internally before this object is returned to a caller.

 public int isNullable(int column) throws SQLException 
    Indicates the nullability of values in the designated column.

    HSQLDB-Specific Information:

    The return value from this method depends on whether the jdbc.strict_md connection property is specified as true. When this property is true: Always returns columnNullableUnknown.

    See discussion at: #getMetaData

 public boolean isReadOnly(int column) throws SQLException 
    Indicates whether the designated column is definitely not writable.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 does not support this feature.

    The return value from this method depends on whether the jdbc.strict_md connection property is specified as true. When this property is true: Calling this method always throws a SQLException, stating that the function is not supported.

    See discussion at: #getMetaData

 boolean isResult() 
    Does this Result contain actual row data?

    Not all results have row data. Some are ERROR results (an execption occured while executing my statement), and some are UPDATE results, in which case updates occured to rows on the database, but no rows were actually returned.

 public boolean isSearchable(int column) throws SQLException 
    Indicates whether the designated column can be used in a where clause.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 does not support this feature.

    The return value from this method depends on whether the jdbc.strict_md connection property is specified as true. When this property is true: Calling this method always throws a SQLException, stating that the function is not supported.

    See discussion at: #getMetaData

 public boolean isSigned(int column) throws SQLException 
    Indicates whether values in the designated column are signed numbers.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 adds support for this feature.

 public boolean isWritable(int column) throws SQLException 
    Indicates whether it is possible for a write on the designated column to succeed.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 does not support this feature.

    The return value from this method depends on whether the jdbc.strict_md connection property is specified as true. When this property is true: Calling this method always throws a SQLException, stating that the function is not supported.

    See discussion at: #getMetaData

 public boolean last() throws SQLException 
    Moves the cursor to the last row in this ResultSet object.

 public  void moveToCurrentRow() throws SQLException 
    Moves the cursor to the remembered cursor position, usually the current row. This method has no effect if the cursor is not on the insert row.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support #moveToInsertRow() so the current row is never strayed from. Consequentially, this request is simply ignored.

 public  void moveToInsertRow() throws SQLException 
    Moves the cursor 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 updater methods prior to inserting the row into the result set. Only the updater, getter, 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. An updater method must be called before a getter method can be called on a column value.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public boolean next() throws SQLException 
    Moves the cursor down one row from its current position. A ResultSet cursor is initially positioned before the first row; the first call to the method next makes the first row the current row; the second call makes the second row the current row, and so on.

    If an input stream is open for the current row, a call to the method next will implicitly close it. A ResultSet object's warning chain is cleared when a new row is read.

 public boolean previous() throws SQLException 
    Moves the cursor to the previous row in this ResultSet object.

 public  void refreshRow() throws SQLException 
    Refreshes the current row with its most recent value in the database. This method cannot be called when the cursor is 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 an updater method, but before calling the method updateRow, then the updates made to the row are lost. Calling the method refreshRow frequently will likely slow performance.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public boolean relative(int rows) throws SQLException 
    Moves the cursor 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 the method relative(1) is identical to calling the method next() and calling the method relative(-1) is identical to calling the method previous().

 public boolean rowDeleted() throws SQLException 
    Retrieves whether a 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 this ResultSet object can detect deletions.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    This method always returns false.

 public boolean rowInserted() throws SQLException 
    Retrieves whether the current row has had an insertion. The value returned depends on whether or not this ResultSet object can detect visible inserts.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    This method always returns false.

 public boolean rowUpdated() throws SQLException 
    Retrieves whether the current row has been updated. The value returned depends on whether or not the result set can detect updates.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    This method always returns false.

 public  void setFetchDirection(int direction) throws SQLException 
    Gives a hint as to the direction in which the rows in this ResultSet object will be processed. The initial value is determined by the Statement object that produced this ResultSet object. The fetch direction may be changed at any time.

    HSQLDB-Specific Information:

    HSQLDB 1.7.1 builds and returns result sets as a whole, so this method does nothing, apart from the case mandated by the JDBC standard below where an SQLException is thrown with result sets of TYPE_FORWARD_ONLY and fetch directions other than FETCH_FORWARD.

 public  void setFetchSize(int rows) throws SQLException 
    Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. The default value is set by the Statement object that created the result set. The fetch size may be changed at any time.

    HSQLDB-Specific Information:

    This method does nothing in HSQLDB as the result set is built and returned completely as a whole.

 public  void updateArray(int columnIndex,
    Array x) throws SQLException 
    Updates the designated column with a java.sql.Array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results or this data type.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateArray(String columnName,
    Array x) throws SQLException 
    Updates the designated column with a java.sql.Array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results or this data type.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateAsciiStream(int columnIndex,
    InputStream x,
    int length) throws SQLException 
    Updates the designated column with an ascii stream value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateAsciiStream(String columnName,
    InputStream x,
    int length) throws SQLException 
    Updates the designated column with an ascii stream value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateBigDecimal(int columnIndex,
    BigDecimal x) throws SQLException 
    Updates the designated column with a java.math.BigDecimal value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateBigDecimal(String columnName,
    BigDecimal x) throws SQLException 
    Updates the designated column with a java.sql.BigDecimal value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateBinaryStream(int columnIndex,
    InputStream x,
    int length) throws SQLException 
    Updates the designated column with a binary stream value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateBinaryStream(String columnName,
    InputStream x,
    int length) throws SQLException 
    Updates the designated column with a binary stream value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateBlob(int columnIndex,
    Blob x) throws SQLException 
    Updates the designated column with a java.sql.Blob value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results or this data type.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateBlob(String columnName,
    Blob x) throws SQLException 
    Updates the designated column with a java.sql.Blob value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results or this data type.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateBoolean(int columnIndex,
    boolean x) throws SQLException 
    Updates the designated column with a boolean value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateBoolean(String columnName,
    boolean x) throws SQLException 
    Updates the designated column with a boolean value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateByte(int columnIndex,
    byte x) throws SQLException 
    Updates the designated column with a byte value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateByte(String columnName,
    byte x) throws SQLException 
    Updates the designated column with a byte value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateBytes(int columnIndex,
    byte[] x) throws SQLException 
    Updates the designated column with a byte array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateBytes(String columnName,
    byte[] x) throws SQLException 
    Updates the designated column with a byte array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateCharacterStream(int columnIndex,
    Reader x,
    int length) throws SQLException 
    Updates the designated column with a character stream value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateCharacterStream(String columnName,
    Reader reader,
    int length) throws SQLException 
    Updates the designated column with a character stream value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateClob(int columnIndex,
    Clob x) throws SQLException 
    Updates the designated column with a java.sql.Clob value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results or this data type.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateClob(String columnName,
    Clob x) throws SQLException 
    Updates the designated column with a java.sql.Clob value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results or this data type.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateDate(int columnIndex,
    Date x) throws SQLException 
    Updates the designated column with a java.sql.Date value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateDate(String columnName,
    Date x) throws SQLException 
    Updates the designated column with a java.sql.Date value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateDouble(int columnIndex,
    double x) throws SQLException 
    Updates the designated column with a double value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateDouble(String columnName,
    double x) throws SQLException 
    Updates the designated column with a double value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateFloat(int columnIndex,
    float x) throws SQLException 
    Updates the designated column with a float value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateFloat(String columnName,
    float x) throws SQLException 
    Updates the designated column with a float value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateInt(int columnIndex,
    int x) throws SQLException 
    Updates the designated column with an int value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateInt(String columnName,
    int x) throws SQLException 
    Updates the designated column with an int value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateLong(int columnIndex,
    long x) throws SQLException 
    Updates the designated column with a long value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateLong(String columnName,
    long x) throws SQLException 
    Updates the designated column with a long value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateNull(int columnIndex) throws SQLException 
    Gives a nullable column a null value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateNull(String columnName) throws SQLException 
    Updates the designated column with a null value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateObject(int columnIndex,
    Object x) throws SQLException 
    Updates the designated column with an Object value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateObject(String columnName,
    Object x) throws SQLException 
    Updates the designated column with an Object value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateObject(int columnIndex,
    Object x,
    int scale) throws SQLException 
    Updates the designated column with an Object value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateObject(String columnName,
    Object x,
    int scale) throws SQLException 
    Updates the designated column with an Object value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateRef(int columnIndex,
    Ref x) throws SQLException 
    Updates the designated column with a java.sql.Ref value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results or this data type.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateRef(String columnName,
    Ref x) throws SQLException 
    Updates the designated column with a java.sql.Ref value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results or this data type.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateRow() throws SQLException 
    Updates the underlying database with the new contents of the current row of this ResultSet object. This method cannot be called when the cursor is on the insert row.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateShort(int columnIndex,
    short x) throws SQLException 
    Updates the designated column with a short value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateShort(String columnName,
    short x) throws SQLException 
    Updates the designated column with a short value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateString(int columnIndex,
    String x) throws SQLException 
    Updates the designated column with a String value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateString(String columnName,
    String x) throws SQLException 
    Updates the designated column with a String value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateTime(int columnIndex,
    Time x) throws SQLException 
    Updates the designated column with a java.sql.Time value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateTime(String columnName,
    Time x) throws SQLException 
    Updates the designated column with a java.sql.Time value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateTimestamp(int columnIndex,
    Timestamp x) throws SQLException 
    Updates the designated column with a java.sql.Timestamp value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public  void updateTimestamp(String columnName,
    Timestamp x) throws SQLException 
    Updates the designated column with a java.sql.Timestamp value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

    HSQLDB-Specific Information:

    Up to and including 1.7.1, HSQLDB does not support updateable results.

    Calling this method always throws a SQLException, stating that the function is not supported.

 public boolean wasNull() throws SQLException 
    Reports whether the last column read had a value of SQL NULL. Note that you must first call one of the getter methods on a column to try to read its value and then call the method wasNull to see if the value read was SQL NULL.