org.hsqldb.jdbc
public class jdbcResultSet extends Object implements ResultSet
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 updatableThe
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:
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 beAINSWORTH
rs.updateRow(); // updates the row in the data source
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 beAINSWORTH
rs.updateInt(2,35); // updates the second column to be35
rs.updateBoolean(3, true); // updates the third row totrue
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.
A ResultSet
object generated by HSQLDB is by default of
ResultSet.TYPE_FORWARD_ONLY
(as is standard JDBC behavior)
and does not allow the use of absolute and relative positioning
methods. However, since 1.7.0, if a statement is created
with:
Statement stmt = conn.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 Database
from which it came. That is, they
persist whether originating from a Server
,
WebServer
or in-process mode Database.
Including HSQLDB 1.7.2, 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 jdbcResultSet,
jdbcResultSet, jdbcResultSet, jdbcResultSet (and so on)
methods; invoking any such method throws an SQLException
stating that the operation is not supported.
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 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 // etc.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.
(fredt@users)
(boucherb@users)
Since: Hypersonic SQL
See Also: jdbcStatement jdbcStatement
UNKNOWN:
ResultSetMetaData
Extensively rewritten and extended in successive versions of HSQLDB.
Field Summary | |
---|---|
static int | CLOSE_CURSORS_AT_COMMIT Copy of java.sql.ResultSet constant, for JDK 1.1 clients. |
static int | CONCUR_READ_ONLY Copy of java.sql.ResultSet constant, for JDK 1.1 clients. |
static int | CONCUR_UPDATABLE Copy of java.sql.ResultSet constant, for JDK 1.1 clients. |
static int | FETCH_FORWARD Copy of java.sql.ResultSet constant, for JDK 1.1 clients. |
static int | FETCH_REVERSE Copy of java.sql.ResultSet constant, for JDK 1.1 clients. |
static int | FETCH_UNKNOWN Copy of java.sql.ResultSet constant, for JDK 1.1 clients. |
static int | HOLD_CURSORS_OVER_COMMIT Copy of java.sql.ResultSet constant, for JDK 1.1 clients. |
Result | rResult The internal representation. |
static int | TYPE_FORWARD_ONLY Copy of java.sql.ResultSet constant, for JDK 1.1 clients. |
static int | TYPE_SCROLL_INSENSITIVE Copy of java.sql.ResultSet constant, for JDK 1.1 clients. |
static int | TYPE_SCROLL_SENSITIVE Copy of java.sql.ResultSet constant, for JDK 1.1 clients. |
Method Summary | |
---|---|
boolean | absolute(int row) |
void | afterLast() |
void | beforeFirst() |
void | cancelRowUpdates() |
void | clearWarnings() |
void | close() |
void | deleteRow() |
int | findColumn(String columnName) |
boolean | first() |
Array | getArray(int i) |
Array | getArray(String colName) |
InputStream | getAsciiStream(int columnIndex) |
InputStream | getAsciiStream(String columnName) |
BigDecimal | getBigDecimal(int columnIndex, int scale) |
BigDecimal | getBigDecimal(String columnName, int scale) |
BigDecimal | getBigDecimal(int columnIndex) |
BigDecimal | getBigDecimal(String columnName) |
InputStream | getBinaryStream(int columnIndex) |
InputStream | getBinaryStream(String columnName) |
Blob | getBlob(int i) |
Blob | getBlob(String colName) |
boolean | getBoolean(int columnIndex) |
boolean | getBoolean(String columnName) |
byte | getByte(int columnIndex) |
byte | getByte(String columnName) |
byte[] | getBytes(int columnIndex) |
byte[] | getBytes(String columnName) |
Reader | getCharacterStream(int columnIndex) |
Reader | getCharacterStream(String columnName) |
Clob | getClob(int i) |
Clob | getClob(String colName) |
int | getConcurrency() |
String | getCursorName() |
Date | getDate(int columnIndex) |
Date | getDate(String columnName) |
Date | getDate(int columnIndex, Calendar cal) |
Date | getDate(String columnName, Calendar cal) |
double | getDouble(int columnIndex) |
double | getDouble(String columnName) |
int | getFetchDirection() |
int | getFetchSize() |
float | getFloat(int columnIndex) |
float | getFloat(String columnName) |
int | getInt(int columnIndex) |
int | getInt(String columnName) |
long | getLong(int columnIndex) |
long | getLong(String columnName) |
ResultSetMetaData | getMetaData() |
Object | getObject(int columnIndex) |
Object | getObject(String columnName) |
Object | getObject(int i, Map map) |
Object | getObject(String colName, Map map) |
Ref | getRef(int i) |
Ref | getRef(String colName) |
int | getRow() |
short | getShort(int columnIndex) |
short | getShort(String columnName) |
Statement | getStatement() |
String | getString(int columnIndex) |
String | getString(String columnName) |
Time | getTime(int columnIndex) |
Time | getTime(String columnName) |
Time | getTime(int columnIndex, Calendar cal) |
Time | getTime(String columnName, Calendar cal) |
Timestamp | getTimestamp(int columnIndex) |
Timestamp | getTimestamp(String columnName) |
Timestamp | getTimestamp(int columnIndex, Calendar cal) |
Timestamp | getTimestamp(String columnName, Calendar cal) |
int | getType() |
InputStream | getUnicodeStream(int columnIndex) |
InputStream | getUnicodeStream(String columnName) |
URL | getURL(int columnIndex) |
URL | getURL(String columnName) |
SQLWarning | getWarnings() |
void | insertRow() |
boolean | isAfterLast() |
boolean | isBeforeFirst() |
boolean | isFirst() |
boolean | isLast() |
boolean | last() |
void | moveToCurrentRow() |
void | moveToInsertRow() |
boolean | next() |
boolean | previous() |
void | refreshRow() |
boolean | relative(int rows) |
boolean | rowDeleted() |
boolean | rowInserted() |
boolean | rowUpdated() |
void | setFetchDirection(int direction) |
void | setFetchSize(int rows) |
void | updateArray(int columnIndex, Array x) |
void | updateArray(String columnName, Array x) |
void | updateAsciiStream(int columnIndex, InputStream x, int length) |
void | updateAsciiStream(String columnName, InputStream x, int length) |
void | updateBigDecimal(int columnIndex, BigDecimal x) |
void | updateBigDecimal(String columnName, BigDecimal x) |
void | updateBinaryStream(int columnIndex, InputStream x, int length) |
void | updateBinaryStream(String columnName, InputStream x, int length) |
void | updateBlob(int columnIndex, Blob x) |
void | updateBlob(String columnName, Blob x) |
void | updateBoolean(int columnIndex, boolean x) |
void | updateBoolean(String columnName, boolean x) |
void | updateByte(int columnIndex, byte x) |
void | updateByte(String columnName, byte x) |
void | updateBytes(int columnIndex, byte[] x) |
void | updateBytes(String columnName, byte[] x) |
void | updateCharacterStream(int columnIndex, Reader x, int length) |
void | updateCharacterStream(String columnName, Reader reader, int length) |
void | updateClob(int columnIndex, Clob x) |
void | updateClob(String columnName, Clob x) |
void | updateDate(int columnIndex, Date x) |
void | updateDate(String columnName, Date x) |
void | updateDouble(int columnIndex, double x) |
void | updateDouble(String columnName, double x) |
void | updateFloat(int columnIndex, float x) |
void | updateFloat(String columnName, float x) |
void | updateInt(int columnIndex, int x) |
void | updateInt(String columnName, int x) |
void | updateLong(int columnIndex, long x) |
void | updateLong(String columnName, long x) |
void | updateNull(int columnIndex) |
void | updateNull(String columnName) |
void | updateObject(int columnIndex, Object x, int scale) |
void | updateObject(int columnIndex, Object x) |
void | updateObject(String columnName, Object x, int scale) |
void | updateObject(String columnName, Object x) |
void | updateRef(int columnIndex, Ref x) |
void | updateRef(String columnName, Ref x) |
void | updateRow() |
void | updateShort(int columnIndex, short x) |
void | updateShort(String columnName, short x) |
void | updateString(int columnIndex, String x) |
void | updateString(String columnName, String x) |
void | updateTime(int columnIndex, Time x) |
void | updateTime(String columnName, Time x) |
void | updateTimestamp(int columnIndex, Timestamp x) |
void | updateTimestamp(String columnName, Timestamp x) |
boolean | wasNull() |
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()
.
Parameters: row the number of the row to which the cursor should move. A positive number indicates the row number counting from the beginning of the result set; a negative number indicates the row number counting from the end of the result set
Returns: true
if the cursor is on the result set;
false
otherwise
Throws: SQLException if a database access error
occurs, or the result set type is TYPE_FORWARD_ONLY
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object, just after the last row. This
method has no effect if the result set contains no rows.
Throws: SQLException if a database access error
occurs or the result set type is TYPE_FORWARD_ONLY
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object, just before the
first row. This method has no effect if the result set contains
no rows.
Throws: SQLException if a database access error
occurs or the result set type is TYPE_FORWARD_ONLY
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Throws: SQLException if a database access error occurs or if this method is called when the cursor is on the insert row
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object.
After this method is called, the method getWarnings
returns null
until a new warning is
reported for this ResultSet
object.
Including 1.7.1, HSQLDB does not produce SQLWarning
objects on any ResultSet object warning chain; calls to this method
are ignored.
Throws: SQLException if a database access error occurs
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.
Throws: SQLException if a database access error occurs
ResultSet
object
and from the underlying database. This method cannot be called when
the cursor is on the insert row.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Throws: SQLException if a database access error occurs or if this method is called when the cursor is on the insert row
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
column name to its
ResultSet
column index.
Parameters: columnName the name of the column
Returns: the column index of the given column name
Throws: SQLException if the ResultSet
object does not
contain columnName
or a database access error occurs
ResultSet
object.
Returns: true
if the cursor is on a valid row;
false
if there are no rows in the result set
Throws: SQLException if a database access error
occurs or the result set type is TYPE_FORWARD_ONLY
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object as an Array
object
in the Java programming language.
Including 1.7.2, HSQLDB does not support this feature.
This method always throws an SQLException
stating that the operation is not supported.
Parameters: i the first column is 1, the second is 2, ...
Returns: an Array
object representing the SQL
ARRAY
value in the specified column
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object as an Array
object
in the Java programming language.
Including 1.7.2, HSQLDB does not support this feature.
This method always throws an SQLException
stating that the operation is not supported.
Parameters: colName the name of the column from which to retrieve the value
Returns: an Array
object representing the SQL
ARRAY
value in the specified column
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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 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.
The limitation noted above does not apply to HSQLDB.
In 1.6.1 and previous, 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 a
Java String object. 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).
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: a Java input stream that delivers the database column value
as a stream of one-byte ASCII characters;
if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
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.
Parameters: columnName the SQL name of the column
Returns: a Java input stream that delivers the database column value
as a stream of one-byte ASCII characters.
If the value is SQL NULL
,
the value returned is null
.
Throws: SQLException if a database access error occurs
See Also: jdbcResultSet
Deprecated: by java.sun.com as of JDK 1.2
Retrieves the value of the designated column in the current row of thisResultSet
object as
a java.sql.BigDecimal
in the Java programming language.
Beginning with 1.7.0, HSQLDB converts the result and sets the scale with BigDecimal.ROUND_HALF_DOWN.
Parameters: columnIndex the first column is 1, the second is 2, ... scale the number of digits to the right of the decimal point
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
Deprecated: by java.sun.com as of JDK 1.2
Retrieves the value of the designated column in the current row of thisResultSet
object as a
java.math.BigDecimal
in the Java programming language.
Beginning with 1.7.0, HSQLDB converts the result and sets the scale with BigDecimal.ROUND_HALF_DOWN.
Parameters: columnName the SQL name of the column scale the number of digits to the right of the decimal point
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
ResultSet
object as a
java.math.BigDecimal
with full precision.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value (full precision);
if the value is SQL NULL
, the value returned is
null
in the Java programming language.
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object as a
java.math.BigDecimal
with full precision.
Parameters: columnName the column name
Returns: the column value (full precision);
if the value is SQL NULL
, the value returned is
null
in the Java programming language.
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: a Java input stream that delivers the database column value
as a stream of uninterpreted bytes;
if the value is SQL NULL
, the value returned is
null
Throws: SQLException if a database access error occurs
ResultSet
object as a stream of uninterpreted
byte
s.
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.
Parameters: columnName the SQL name of the column
Returns: a Java input stream that delivers the database column value
as a stream of uninterpreted bytes;
if the value is SQL NULL
, the result is null
Throws: SQLException if a database access error occurs
ResultSet
object as a Blob
object
in the Java programming language.
Starting with 1.7.2, this feature is supported.
Parameters: i the first column is 1, the second is 2, ...
Returns: a Blob
object representing the SQL
BLOB
value in the specified column
Throws: SQLException if a database access error occurs
Since: JDK 1.2
ResultSet
object as a Blob
object
in the Java programming language.
Starting with 1.7.2, this feature is supported.
Parameters: colName the name of the column from which to retrieve the value
Returns: a Blob
object representing the
SQL BLOB
value in the specified column
Throws: SQLException if a database access error occurs
Since: JDK 1.2
ResultSet
object as
a boolean
in the Java programming language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is false
Throws: SQLException if a database access error occurs
ResultSet
object as
a boolean
in the Java programming language.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is false
Throws: SQLException if a database access error occurs
ResultSet
object as
a byte
in the Java programming language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object as
a byte
in the Java programming language.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object as
a byte
array in the Java programming language.
The bytes represent the raw values returned by the driver.
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.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
ResultSet
object as
a byte
array in the Java programming language.
The bytes represent the raw values returned by the driver.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
ResultSet
object as a
java.io.Reader
object.
Starting with 1.7.0. HSQLDB supports this.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: a java.io.Reader
object that contains the column
value; if the value is SQL NULL
, the value returned
is null
in the Java programming language.
Throws: SQLException if a database access error occurs
Since: JDK 1.2
ResultSet
object as a
java.io.Reader
object.
Starting with 1.7.0, HSQLDB supports this.
Parameters: columnName the name of the column
Returns: a java.io.Reader
object that contains the column
value; if the value is SQL NULL
, the value returned is
null
in the Java programming language
Throws: SQLException if a database access error occurs
Since: JDK 1.2
ResultSet
object as a Clob
object
in the Java programming language.
Starting with 1.7.2, this feature is supported.
Parameters: i the first column is 1, the second is 2, ...
Returns: a Clob
object representing the SQL
CLOB
value in the specified column
Throws: SQLException if a database access error occurs
Since: JDK 1.2
ResultSet
object as a Clob
object
in the Java programming language.
Starting with 1.7.2, this feature is supported.
Parameters: colName the name of the column from which to retrieve the value
Returns: a Clob
object representing the SQL
CLOB
value in the specified column
Throws: SQLException if a database access error occurs
Since: JDK 1.2
ResultSet
object.
The concurrency used is determined by the
Statement
object that created the result set.
Including 1.7.2, HSQLDB supports only CONCUR_READ_ONLY
;
this method always returns CONCUR_READ_ONLY
.
Returns: the concurrency type, either
ResultSet.CONCUR_READ_ONLY
or ResultSet.CONCUR_UPDATABLE
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support this feature.
Calling this method always throws an SQLException
,
stating that the operation is not supported.
Returns: the SQL name for this ResultSet
object's cursor
Throws: SQLException if a database access error occurs
ResultSet
object as a
java.sql.Date
object in the Java programming language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
ResultSet
object as a
java.sql.Date
object in the Java programming language.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
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.
Parameters: columnIndex the first column is 1, the second is 2, ... cal the java.util.Calendar
object
to use in constructing the date
Returns: the column value as a java.sql.Date
object;
if the value is SQL NULL
, the value returned is
null
in the Java programming language
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Parameters: columnName the SQL name of the column from which to retrieve the
value cal the java.util.Calendar
object
to use in constructing the date
Returns: the column value as a java.sql.Date
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming
language
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object as
a double
in the Java programming language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object as
a double
in the Java programming language.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object.
Including 1.7.2, HSQLDB builds and returns result sets as a whole;
this method always returns FETCH_FORWARD
, but the value
has no real meaning.
Returns: the current fetch direction for this ResultSet
object
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
See Also: jdbcResultSet
ResultSet
object.
Including 1.7.2, HSQLDB builds and returns result sets as a whole; the value returned (always 1) has no significance.
Returns: the current fetch size for this ResultSet
object
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
See Also: jdbcResultSet jdbcStatement jdbcStatement
ResultSet
object as
a float
in the Java programming language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object as
a float
in the Java programming language.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object as
an int
in the Java programming language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object as
an int
in the Java programming language.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object as
a long
in the Java programming language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object as
a long
in the Java programming language.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object's columns.
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);
Including 1.7.1, HSQLDB did not generate accurate
ResultSetMetaData
. Below were the the most important
methods to consider:
false
false
columnNullableUnknown
Returns: the description of this ResultSet
object's columns
Throws: SQLException if a database access error occurs
See Also: jdbcResultSetMetaData
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())
.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: a java.lang.Object
holding the column value
Throws: SQLException if a database access error occurs
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())
.
Parameters: columnName the SQL name of the column
Returns: a java.lang.Object
holding the column value
Throws: SQLException if a database access error occurs
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.
Including 1.7.2, HSQLDB does not support this feature.
This method always throws an SQLException
,
stating that the operation is not supported.
Parameters: i the first column is 1, the second is 2, ... map a java.util.Map
object that contains the
mapping from SQL type names to classes in the Java programming
language
Returns: an Object
in the Java programming language
representing the SQL value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support this feature.
This method always throws an SQLException
stating that the operation is not supported.
Parameters: colName the name of the column from which to retrieve the value map a java.util.Map
object that contains the
mapping from SQL type names to classes in the Java programming
language
Returns: an Object
representing the SQL value in the
specified column
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object as a Ref
object
in the Java programming language.
Including 1.7.2, HSQLDB does not support this feature.
This method always throws an SQLException
stating that the operation is not supported.
Parameters: i the first column is 1, the second is 2, ...
Returns: a Ref
object representing an SQL REF
value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object as a Ref
object
in the Java programming language.
Including 1.7.2, HSQLDB does not support this feature.
This method always throws an SQLException
,
stating that the operartion is not supported.
Parameters: colName the column name
Returns: a Ref
object representing the SQL REF
value in the specified column
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
Returns: the current row number; 0
if there is no current
row
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object as
a short
in the Java programming language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
ResultSet
object as
a short
in the Java programming language.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
Throws: SQLException if a database access error occurs
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
.
Returns: the Statment
object that produced
this ResultSet
object or null
if the result set was produced some other way
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object as
a String
in the Java programming language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
ResultSet
object as
a String
in the Java programming language.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
ResultSet
object as a java.sql.Time
object in the Java programming language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
ResultSet
object as a java.sql.Time
object in the Java programming language.
Parameters: columnName the SQL name of the column
Returns: the column value;
if the value is SQL NULL
,
the value returned is null
Throws: SQLException if a database access error occurs
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.
Parameters: columnIndex the first column is 1, the second is 2, ... cal the java.util.Calendar
object
to use in constructing the time
Returns: the column value as a java.sql.Time
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming
language
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Parameters: columnName the SQL name of the column cal the java.util.Calendar
object
to use in constructing the time
Returns: the column value as a java.sql.Time
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming
language
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object as
a java.sql.Timestamp
object in the Java programming
language.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
ResultSet
object as
a java.sql.Timestamp
object.
Parameters: columnName the SQL name of the column
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Throws: SQLException if a database access error occurs
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.
Parameters: columnIndex the first column is 1, the second is 2, ... cal the java.util.Calendar
object
to use in constructing the timestamp
Returns: the column value as a java.sql.Timestamp
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming
language
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Parameters: columnName the SQL name of the column cal the java.util.Calendar
object
to use in constructing the date
Returns: the column value as a java.sql.Timestamp
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming
language
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object.
The type is determined by the Statement
object
that created the result set.
Including 1.7.2, HSQLDB does not support and thus
never returns ResultSet.TYPE_SCROLL_SENSITIVE
.
Returns: ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
,
or ResultSet.TYPE_SCROLL_SENSITIVE
(not supported)
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
Deprecated: use getCharacterStream
in place of
getUnicodeStream
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 LONGVARCHAR
values. 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.
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.
Parameters: columnIndex the first column is 1, the second is 2, ...
Returns: a Java input stream that delivers the database column value
as a stream of two-byte Unicode characters;
if the value is SQL NULL
, the value returned is
null
Throws: SQLException if a database access error occurs
Deprecated: use getCharacterStream
instead
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.
Parameters: columnName the SQL name of the column
Returns: a Java input stream that delivers the database column value
as a stream of two-byte Unicode characters.
If the value is SQL NULL
, the value returned
is null
.
Throws: SQLException if a database access error occurs
See Also: jdbcResultSet
ResultSet
object as a java.net.URL
object in the Java programming language.
Including 1.7.2, HSQLDB does not support this feature.
This method always throws an SQLException
stating that the operation is not supported.
Parameters: columnIndex the index of the column 1 is the first, 2 is the second,...
Returns: the column value as a java.net.URL
object;
if the value is SQL NULL
, the value returned
is null
in the Java programming language
Throws: SQLException if a database access error occurs, or if a URL is malformed
Since: JDK 1.4, HSQLDB 1.7.0
ResultSet
object as a java.net.URL
object in the Java programming language.
Including 1.7.2, HSQLDB does not support this feature.
This method always throws an SQLException
stating that the operation is not supported.
Parameters: columnName the SQL name of the column
Returns: the column value as a java.net.URL
object;
if the value is SQL NULL
, the value returned
is null
in the Java programming language
Throws: SQLException if a database access error occurs or if a URL is malformed
Since: JDK 1.4, HSQLDB 1.7.0
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.
Up to and including 1.7.1, HSQLDB does not produce
SQLWarning
objects. This method always returns
null
.
Returns: the first
Up to and including 1.7.1, HSQLDB always returns null. SQLWarning
object reported or
null
if there are none
Throws: SQLException if a database access error occurs or this method is called on a closed result set
ResultSet
object and into the database.
The cursor must be on the insert row when this method is called.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Throws: SQLException if a database access error occurs, if this method is called when the cursor is not on the insert row, or if not all of non-nullable columns in the insert row have been given a value
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object.
Returns: true
if the cursor is after the last row;
false
if the cursor is at any other position or the
result set contains no rows
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object.
Returns: true
if the cursor is before the first row;
false
if the cursor is at any other position or the
result set contains no rows
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object.
Returns: true
if the cursor is on the first row;
false
otherwise
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, this method is not terribly expensive; the entire result is fetched internally before this object is returned to a caller.
Returns: true
if the cursor is on the last row;
false
otherwise
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object.
Returns: true
if the cursor is on a valid row;
false
if there are no rows in the result set
Throws: SQLException if a database access error
occurs or the result set type is TYPE_FORWARD_ONLY
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
Including 1.7.2, HSQLDB does not support updateable result sets.
This method is ignored.
Throws: SQLException if a database access error occurs or the result set is not updatable
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Throws: SQLException if a database access error occurs or the result set is not updatable
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Returns: true
if the new current row is valid;
false
if there are no more rows
Throws: SQLException if a database access error occurs
ResultSet
object.
Returns: true
if the cursor is on a valid row;
false
if it is off the result set
Throws: SQLException if a database access error
occurs or the result set type is TYPE_FORWARD_ONLY
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Throws: SQLException if a database access error occurs or if this method is called when the cursor is on the insert row
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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()
.
Parameters: rows an int
specifying the number of rows to
move from the current row; a positive number moves the cursor
forward; a negative number moves the cursor backward
Returns: true
if the cursor is on a row;
false
otherwise
Throws: SQLException if a database access error occurs,
there is no current row, or the result set type is
TYPE_FORWARD_ONLY
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
ResultSet
object can detect deletions.
Including 1.7.2, HSQLDB does not support updateable results.
This method always returns false.
Returns: true
if a row was deleted and deletions are
detected; false
otherwise
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
See Also: DatabaseMetaData#deletesAreDetected
ResultSet
object can detect visible inserts.
Including 1.7.2, HSQLDB does not support updateable results.
This method always returns false.
Returns: true
if a row has had an insertion
and insertions are detected; false
otherwise
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
See Also: DatabaseMetaData#insertsAreDetected
Including 1.7.2, HSQLDB does not support updateable results.
This method always returns false.
Returns: true
if both (1) the row has been visibly updated
by the owner or another and (2) updates are detected
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
See Also: DatabaseMetaData#updatesAreDetected
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.
Including 1.7.2, HSQLDB builds and returns result sets as a whole; this method does nothing. However, as mandated by the JDBC standard, an SQLException is thrown if the result set type is TYPE_FORWARD_ONLY and a fetch direction other than FETCH_FORWARD is requested.
Parameters: direction an int
specifying the suggested
fetch direction; one of ResultSet.FETCH_FORWARD
,
ResultSet.FETCH_REVERSE
, or
ResultSet.FETCH_UNKNOWN
Throws: SQLException if a database access error occurs or
the result set type is TYPE_FORWARD_ONLY
and the
fetch direction is not FETCH_FORWARD
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
See Also: jdbcStatement jdbcResultSet
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.
Including 1.7.2, HSQLDB builds and returns result sets as a whole; this method does nothing.
Parameters: rows the number of rows to fetch
Throws: SQLException if a database access error occurs or the
condition 0 <= rows <= this.getMaxRows()
is not satisfied
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
See Also: jdbcResultSet jdbcStatement jdbcStatement
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.4, HSQLDB 1.7.0
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.4, HSQLDB 1.7.0
updateRow
or
insertRow
methods are called to update the database.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value length the length of the stream
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
updateRow
or
insertRow
methods are called to update the database.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value length the length of the stream
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable results.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
updateRow
or
insertRow
methods are called to update the database.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value length the length of the stream
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
updateRow
or
insertRow
methods are called to update the database.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value length the length of the stream
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.4, HSQLDB 1.7.0
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.4, HSQLDB 1.7.0
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.
Including 1.7.2, HSQLDB does not support updateable results.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable results.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
updateRow
or
insertRow
methods are called to update the database.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
updateRow
or
insertRow
methods are called to update the database.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value length the length of the stream
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
updateRow
or
insertRow
methods are called to update the database.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column reader the java.io.Reader
object containing
the new column value length the length of the stream
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.4, HSQLDB 1.7.0
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.4, HSQLDB 1.7.0
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable results.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable results.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable results.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable results.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
updateRow
or insertRow
methods are called to update the database.
Including 1.7.1, HSQLDB does not support updateable results.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ...
Throws: SQLException if a database access error occurs
Since: JDK 1.2
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value scale for java.sql.Types.DECIMA
or java.sql.Types.NUMERIC
types,
this is the number of digits after the decimal point. For all other
types this value will be ignored.
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
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 point. For all other
types this value will be ignored.
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.4, HSQLDB 1.7.0
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.4, HSQLDB 1.7.0
ResultSet
object.
This method cannot be called when the cursor is on the insert row.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Throws: SQLException if a database access error occurs or if this method is called when the cursor is on the insert row
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable results.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable results.
This method always throws an SQLException, stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnIndex the first column is 1, the second is 2, ... x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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.
Including 1.7.2, HSQLDB does not support updateable result sets.
This method always throws an SQLException stating that the operation is not supported.
Parameters: columnName the name of the column x the new column value
Throws: SQLException if a database access error occurs
Since: JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcResultSet)
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
.
Returns: true
if the last column value read was SQL
NULL
and false
otherwise
Throws: SQLException if a database access error occurs