The standard implementation of the CachedRowSet interface.
See interface defintion for full behaviour and implementation requirements.
This reference implementation has made provision for a one-to-one write back
facility and it is curremtly be possible to change the peristence provider
during the life-time of any CachedRowSetImpl.

getCurrentRow()
Returns the insert row or the current row of this
CachedRowSetImplobject.

java.lang.String

getCursorName()
Retrieves the name of the SQL cursor used by this
CachedRowSetImpl object.

java.sql.Date

getDate(int columnIndex)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
java.sql.Date object.

java.sql.Date

getDate(int columnIndex,
java.util.Calendar cal)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a java.sql.Date
object, using the given Calendar object to construct an
appropriate millisecond value for the date.

java.sql.Date

getDate(java.lang.String columnName)
Retrieves the value stored in the designated column
of the current row as a java.sql.Date object.

java.sql.Date

getDate(java.lang.String columnName,
java.util.Calendar cal)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a java.sql.Date
object, using the given Calendar object to construct an
appropriate millisecond value for the date.

double

getDouble(int columnIndex)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
double value.

double

getDouble(java.lang.String columnName)
Retrieves the value stored in the designated column
of the current row of this CachedRowSetImpl object
as a double value.

float

getFloat(int columnIndex)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
float value.

float

getFloat(java.lang.String columnName)
Retrieves the value stored in the designated column
of the current row as a float value.

int

getInt(int columnIndex)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as an
int value.

int

getInt(java.lang.String columnName)
Retrieves the value stored in the designated column
of the current row as an int value.

int[]

getKeyColumns()
Returns the columns that make a key to uniquely identify a
row in this CachedRowSetImpl object.

long

getLong(int columnIndex)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
long value.

long

getLong(java.lang.String columnName)
Retrieves the value stored in the designated column
of the current row as a long value.

int[]

getMatchColumnIndexes()
Retrieves the column id as int array that was set using
setMatchColumn(int []) for this rowset.

java.lang.String[]

getMatchColumnNames()
Retrieves the column name as String array
that was set using setMatchColumn(String [])
for this rowset.

java.sql.ResultSetMetaData

getMetaData()
Retrieves a ResultSetMetaData object instance that
contains information about the CachedRowSet object.

java.lang.Object

getObject(int columnIndex)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as an
Object value.

java.lang.Object

getObject(int columnIndex,
java.util.Map map)
Retrieves the value of the designated column in this
CachedRowSetImpl object as an Object in
the Java programming language, using the given
java.util.Map object to custom map the value if
appropriate.

java.lang.Object

getObject(java.lang.String columnName)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as an
Object value.

java.lang.Object

getObject(java.lang.String columnName,
java.util.Map map)
Retrieves the value of the designated column in this
CachedRowSetImpl object as an Object in
the Java programming language, using the given
java.util.Map object to custom map the value if
appropriate.

java.sql.ResultSet

getOriginal()
Returns a result set containing the original value of the rowset.

java.sql.ResultSet

getOriginalRow()
Returns a result set containing the original value of the current
row only.

getSyncProvider()
Returns the SyncProvider implementation being used
with this CachedRowSetImpl implementation rowset.

java.lang.String

getTableName()
Returns an identifier for the object (table) that was used to create this
rowset.

java.sql.Time

getTime(int columnIndex)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
java.sql.Time object.

java.sql.Time

getTime(int columnIndex,
java.util.Calendar cal)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a java.sql.Time
object, using the given Calendar object to construct an
appropriate millisecond value for the date.

java.sql.Time

getTime(java.lang.String columnName)
Retrieves the value stored in the designated column
of the current row as a java.sql.Time object.

java.sql.Time

getTime(java.lang.String columnName,
java.util.Calendar cal)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a java.sql.Time
object, using the given Calendar object to construct an
appropriate millisecond value for the date.

java.sql.Timestamp

getTimestamp(int columnIndex)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
java.sql.Timestamp object.

java.sql.Timestamp

getTimestamp(int columnIndex,
java.util.Calendar cal)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a java.sql.Timestamp
object, using the given Calendar object to construct an
appropriate millisecond value for the date.

java.sql.Timestamp

getTimestamp(java.lang.String columnName)
Retrieves the value stored in the designated column
of the current row as a java.sql.Timestamp object.

java.sql.Timestamp

getTimestamp(java.lang.String columnName,
java.util.Calendar cal)
Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
java.sql.Timestamp object, using the given
Calendar object to construct an appropriate
millisecond value for the date.

getURL(int columnIndex)
Retrieves the value of the designated column in this
CachedRowSetImpl object as a java.net.URL object
in the Java programming language.

java.net.URL

getURL(java.lang.String columnName)
Retrieves the value of the designated column in this
CachedRowSetImpl object as a java.net.URL object
in the Java programming language.

java.sql.SQLWarning

getWarnings()
The first warning reported by calls on this CachedRowSetImpl
object is returned.

void

insertRow()
Inserts the contents of this CachedRowSetImpl object's insert
row into this rowset immediately following the current row.

protected boolean

internalFirst()
Moves this CachedRowSetImpl object's cursor to the first
row and returns true if the operation is successful.

protected boolean

internalLast()
Moves this CachedRowSetImpl object's cursor to the last
row and returns true if the operation is successful.

protected boolean

internalNext()
Moves this CachedRowSetImpl object's cursor to the next
row and returns true if the cursor is still in the rowset;
returns false if the cursor has moved to the position after
the last row.

protected boolean

internalPrevious()
Moves the cursor to the previous row in this CachedRowSetImpl
object, skipping past deleted rows that are not visible; returns
true if the cursor is on a row in this rowset and
false when the cursor goes before the first row.

boolean

isAfterLast()
Indicates whether the cursor is after the last row in this
CachedRowSetImpl object.

boolean

isBeforeFirst()
Indicates whether the cursor is before the first row in this
CachedRowSetImpl object.

boolean

isFirst()
Indicates whether the cursor is on the first row in this
CachedRowSetImpl object.

boolean

isLast()
Indicates whether the cursor is on the last row in this
CachedRowSetImpl object.

boolean

last()
Moves this CachedRowSetImpl object's cursor to the last row
and returns true if the operation was successful.

void

moveToCurrentRow()
Moves the cursor for this CachedRowSetImpl object to
the current row.

void

moveToInsertRow()
Moves the cursor for this CachedRowSetImpl object
to the insert row.

boolean

next()
Moves the cursor down one row from its current position and
returns true if the new cursor position is a
valid row.

boolean

nextPage()
The nextPage gets the next page, that is a CachedRowSetImpl object
containing the number of rows specified by page size.

void

populate(java.sql.ResultSet data)
Populates this CachedRowSetImpl object with data from
the given ResultSet object.

void

populate(java.sql.ResultSet data,
int start)
Populates this CachedRowSet object with data from
the given ResultSet object.

boolean

previous()
Moves this CachedRowSetImpl object's cursor to the
previous row and returns true if the cursor is on
a valid row or false if it is not.

boolean

previousPage()
Retrieves the data present in the page prior to the page from where it is
called.

void

refreshRow()
Sets the current row with its original value and marks the row as
not updated, thus undoing any changes made to the row since the
last call to the methods updateRow or deleteRow.

boolean

relative(int rows)
Moves the cursor the specified number of rows from the current
position, with a positive number moving it forward and a
negative number moving it backward.

void

release()
Releases the current contents of this CachedRowSetImpl
object and sends a rowSetChanged event object to all
registered listeners.

toCollection()
Converts this CachedRowSetImpl object to a collection
of tables.

java.util.Collection

toCollection(int column)
Returns the specified column of this CachedRowSetImpl object
as a Collection object.

java.util.Collection

toCollection(java.lang.String column)
Returns the specified column of this CachedRowSetImpl object
as a Collection object.

void

undoDelete()
Cancels deletion of the current row and notifies listeners that
a row has changed.

void

undoInsert()
Immediately removes the current row from this
CachedRowSetImpl object if the row has been inserted, and
also notifies listeners the a row has changed.

void

undoUpdate()
Immediately reverses the last update operation if the
row has been modified.

void

unsetMatchColumn(int columnIdx)
Unsets the designated parameter to the given int
object.

void

unsetMatchColumn(int[] columnIdxes)
Unsets the designated parameter to the given int array.

void

unsetMatchColumn(java.lang.String columnName)
Unsets the designated parameter to the given String
object.

void

unsetMatchColumn(java.lang.String[] columnIdxes)
Unsets the designated parameter to the given String array.

void

updateArray(int columnIndex,
java.sql.Array a)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.sql.Array values.

void

updateArray(java.lang.String columnName,
java.sql.Array a)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.sql.Array value.

void

updateAsciiStream(int columnIndex,
java.io.InputStream x,
int length)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
ASCII stream value.

void

updateAsciiStream(java.lang.String columnName,
java.io.InputStream x,
int length)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
ASCII stream value.

void

updateBigDecimal(int columnIndex,
java.math.BigDecimal x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.math.BigDecimal object.

void

updateBigDecimal(java.lang.String columnName,
java.math.BigDecimal x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.math.BigDecimal object.

void

updateBinaryStream(int columnIndex,
java.io.InputStream x,
int length)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.io.InputStream object.

void

updateBinaryStream(java.lang.String columnName,
java.io.InputStream x,
int length)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.io.InputStream object.

void

updateBlob(int columnIndex,
java.sql.Blob b)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.sql.Blob value.

void

updateBlob(java.lang.String columnName,
java.sql.Blob b)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.sql.Blob value.

void

updateBoolean(int columnIndex,
boolean x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
boolean value.

void

updateBoolean(java.lang.String columnName,
boolean x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
boolean value.

void

updateByte(int columnIndex,
byte x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
byte value.

void

updateByte(java.lang.String columnName,
byte x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
byte value.

void

updateBytes(int columnIndex,
byte[] x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
byte array.

void

updateBytes(java.lang.String columnName,
byte[] x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
byte array.

void

updateCharacterStream(int columnIndex,
java.io.Reader x,
int length)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.io.Reader object.

void

updateCharacterStream(java.lang.String columnName,
java.io.Reader reader,
int length)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.io.Reader object.

void

updateClob(int columnIndex,
java.sql.Clob c)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
double value.

void

updateClob(java.lang.String columnName,
java.sql.Clob c)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
double value.

void

updateDate(int columnIndex,
java.sql.Date x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Date object.

void

updateDate(java.lang.String columnName,
java.sql.Date x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Date object.

void

updateDouble(int columnIndex,
double x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
double value.

void

updateDouble(java.lang.String columnName,
double x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
double value.

void

updateFloat(int columnIndex,
float x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
float value.

void

updateFloat(java.lang.String columnName,
float x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
float value.

void

updateInt(int columnIndex,
int x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
int value.

void

updateInt(java.lang.String columnName,
int x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
int value.

void

updateLong(int columnIndex,
long x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
long value.

void

updateLong(java.lang.String columnName,
long x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
long value.

void

updateNull(int columnIndex)
Sets the designated nullable column in the current row or the
insert row of this CachedRowSetImpl object with
null value.

void

updateNull(java.lang.String columnName)
Sets the designated nullable column in the current row or the
insert row of this CachedRowSetImpl object with
null value.

void

updateObject(int columnIndex,
java.lang.Object x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Object value.

void

updateObject(int columnIndex,
java.lang.Object x,
int scale)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Object value.

void

updateObject(java.lang.String columnName,
java.lang.Object x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Object value.

void

updateObject(java.lang.String columnName,
java.lang.Object x,
int scale)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Object value.

void

updateRef(int columnIndex,
java.sql.Ref ref)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Ref value.

void

updateRef(java.lang.String columnName,
java.sql.Ref ref)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
double value.

void

updateRow()
Marks the current row of this CachedRowSetImpl object as
updated and notifies listeners registered with this rowset that the
row has changed.

void

updateShort(int columnIndex,
short x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
short value.

void

updateShort(java.lang.String columnName,
short x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
short value.

void

updateString(int columnIndex,
java.lang.String x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
String object.

void

updateString(java.lang.String columnName,
java.lang.String x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
String object.

void

updateTime(int columnIndex,
java.sql.Time x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Time object.

void

updateTime(java.lang.String columnName,
java.sql.Time x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Time object.

void

updateTimestamp(int columnIndex,
java.sql.Timestamp x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Timestamp object.

void

updateTimestamp(java.lang.String columnName,
java.sql.Timestamp x)
Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Timestamp object.

However, applications will have the means to specify at runtime the
desired SyncProvider object.

For example, creating a CachedRowSetImpl object as follows ensures
that a it is established with the com.foo.provider.Impl synchronization
implementation providing the synchronization mechanism for this disconnected
RowSet object.

populate

Populates this CachedRowSetImpl object with data from
the given ResultSet object. This
method is an alternative to the method execute
for filling the rowset with data. The method populate
does not require that the properties needed by the method
execute, such as the command property,
be set. This is true because the method populate
is given the ResultSet object from
which to get data and thus does not need to use the properties
required for setting up a connection and executing this
CachedRowSetImpl object's command.

After populating this rowset with data, the method
populate sets the rowset's metadata and
then sends a RowSetChangedEvent object
to all registered listeners prior to returning.

execute

Populates this CachedRowSetImpl object with data,
using the given connection to produce the result set from
which data will be read. A second form of this method,
which takes no arguments, uses the values from this rowset's
user, password, and either url or data source properties to
create a new database connection. The form of execute
that is given a connection ignores these properties.

acceptChanges

NoteIn the reference implementation an optimistic concurrency implementation
is provided as a sample implementation of a the SyncProvider
abstract class.

This method fails if any of the updates cannot be propagated back
to the data source. When it fails, the caller can assume that
none of the updates are reflected in the data source.
When an exception is thrown, the current row
is set to the first "updated" row that resulted in an exception
unless the row that caused the exception is a "deleted" row.
In that case, when deleted rows are not shown, which is usually true,
the current row is not affected.

If no SyncProvider is configured, the reference implementation
leverages the RIOptimisticProvider available which provides the
default and reference synchronization capabilities for disconnected
RowSets.

acceptChanges

Propagates all row update, insert, and delete changes to the
data source backing this CachedRowSetImpl object
using the given Connection object.

The reference implementation RIOptimisticProvider
modifies its synchronization to a write back function given
the updated connection
The reference implementation modifies its synchronization behaviour
via the SyncProvider to ensure the synchronization
occurs according to the updated JDBC Connection
properties.

undoInsert

public void undoInsert()
throws java.sql.SQLException

Immediately removes the current row from this
CachedRowSetImpl object if the row has been inserted, and
also notifies listeners the a row has changed. An exception is thrown
if the row is not a row that has been inserted or the cursor is before
the first row, after the last row, or on the insert row.

undoUpdate

public void undoUpdate()
throws java.sql.SQLException

Immediately reverses the last update operation if the
row has been modified. This method can be
called to reverse updates on a all columns until all updates in a row have
been rolled back to their originating state since the last synchronization
(acceptChanges) or population. This method may also be called
while performing updates to the insert row.

createShared

public javax.sql.RowSet createShared()
throws java.sql.SQLException

Returns a new RowSet object backed by the same data as
that of this CachedRowSetImpl object and sharing a set of cursors
with it. This allows cursors to interate over a shared set of rows, providing
multiple views of the underlying data.

clone

Returns a new RowSet object containing by the same data
as this CachedRowSetImpl object. This method
differs from the method createCopy in that it throws a
CloneNotSupportedException object instead of an
SQLException object, as the method createShared
does. This clone
method is called internally by the method createShared,
which catches the CloneNotSupportedException object
and in turn throws a new SQLException object.

Returns:

a copy of this CachedRowSetImpl object

Throws:

java.lang.CloneNotSupportedException - if an error occurs when
attempting to clone this CachedRowSetImpl object

createCopy

Creates a RowSet object that is a deep copy of
this CachedRowSetImpl object's data, including
constraints. Updates made
on a copy are not visible to the original rowset;
a copy of a rowset is completely independent from the original.

Making a copy saves the cost of creating an identical rowset
from first principles, which can be quite expensive.
For example, it can eliminate the need to query a
remote database server.

createCopySchema

Creates a RowSet object that is a copy of
this CachedRowSetImpl object's table structure
and the constraints only.
There will be no data in the object being returned.
Updates made on a copy are not visible to the original rowset.

This helps in getting the underlying XML schema which can
be used as the basis for populating a WebRowSet.

createCopyNoConstraints

Creates a CachedRowSet object that is a copy of
this CachedRowSetImpl object's data only.
All constraints set in this object will not be there
in the returning object. Updates made
on a copy are not visible to the original rowset.

toCollection

Converts this CachedRowSetImpl object to a collection
of tables. The sample implementation utilitizes the TreeMap
collection type.
This class guarantees that the map will be in ascending key order,
sorted according to the natural order for the key's class.

toCollection

Returns the specified column of this CachedRowSetImpl object
as a Collection object. This method makes a copy of the
column's data and utilitizes the Vector to establish the
collection. The Vector class implements a growable array
objects allowing the individual components to be accessed using an
an integer index similar to that of an array.

toCollection

Returns the specified column of this CachedRowSetImpl object
as a Collection object. This method makes a copy of the
column's data and utilitizes the Vector to establish the
collection. The Vector class implements a growable array
objects allowing the individual components to be accessed using an
an integer index similar to that of an array.

execute

public void execute()
throws java.sql.SQLException

Populates this CachedRowSetImpl object with data.
This form of the method uses the rowset's user, password, and url or
data source name properties to create a database
connection. If properties that are needed
have not been set, this method will throw an exception.

Another form of this method uses an existing JDBC Connection
object instead of creating a new one; therefore, it ignores the
properties used for establishing a new connection.

The query specified by the command property is executed to create a
ResultSet object from which to retrieve data.
The current contents of the rowset are discarded, and the
rowset's metadata is also (re)set. If there are outstanding updates,
they are also ignored.

The method execute closes any database connections that it
creates.

Specified by:

execute in interface javax.sql.RowSet

Throws:

java.sql.SQLException - if an error occurs or the
necessary properties have not been set

next

public boolean next()
throws java.sql.SQLException

Moves the cursor down one row from its current position and
returns true if the new cursor position is a
valid row.
The cursor for a new ResultSet object is initially
positioned before the first row. The first call to the method
next moves the cursor to the first row, making it
the current row; the second call makes the second row the
current row, and so on.

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

Specified by:

next in interface java.sql.ResultSet

Returns:

true if the new current row is valid;
false if there are no more rows

Throws:

java.sql.SQLException - if an error occurs or
the cursor is not positioned in the rowset, before
the first row, or after the last row

internalNext

protected boolean internalNext()
throws java.sql.SQLException

Moves this CachedRowSetImpl object's cursor to the next
row and returns true if the cursor is still in the rowset;
returns false if the cursor has moved to the position after
the last row.

This method handles the cases where the cursor moves to a row that
has been deleted.
If this rowset shows deleted rows and the cursor moves to a row
that has been deleted, this method moves the cursor to the next
row until the cursor is on a row that has not been deleted.

The method internalNext is called by methods such as
next, absolute, and relative,
and, as its name implies, is only called internally.

This is a implementation only method and is not required as a standard
implementation of the CachedRowSet interface.

Returns:

true if the cursor is on a valid row in this
rowset; false if it is after the last row

Throws:

java.sql.SQLException - if an error occurs

close

public void close()
throws java.sql.SQLException

Closes this CachedRowSetImpl objecy and releases any resources
it was using.

Specified by:

close in interface java.sql.ResultSet

Throws:

java.sql.SQLException - if an error occurs when releasing any resources in use
by this CachedRowSetImpl object

wasNull

public boolean wasNull()
throws java.sql.SQLException

Reports whether the last column read was SQL NULL.
Note that you must first call the method getXXX
on a column to try to read its value and then call the method
wasNull to determine whether the value was
SQL NULL.

Specified by:

wasNull in interface java.sql.ResultSet

Returns:

true if the value in the last column read
was SQL NULL; false otherwise

getString

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
String object.

Specified by:

getString in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

the column value; if the value is SQL NULL, the
result is null

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL TINYINT, SMALLINT, INTEGER, BIGINT, REAL,
FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR
or LONGVARCHAR value. The bold SQL type designates the
recommended return type.

getBoolean

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
boolean value.

Specified by:

getBoolean in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

the column value as a boolean in the Java progamming language;
if the value is SQL NULL, the result is false

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL BOOLEAN value

getByte

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
byte value.

Specified by:

getByte in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

the column value as a byte in the Java programming
language; if the value is SQL NULL, the result is 0

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL TINYINT, SMALLINT, INTEGER, BIGINT, REAL,
FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR
or LONGVARCHAR value. The bold SQL type
designates the recommended return type.

getShort

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
short value.

Specified by:

getShort in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

the column value; if the value is SQL NULL, the
result is 0

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL TINYINT, SMALLINT, INTEGER, BIGINT, REAL
FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR
or LONGVARCHAR value. The bold SQL type designates the
recommended return type.

getInt

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as an
int value.

Specified by:

getInt in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

the column value; if the value is SQL NULL, the
result is 0

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL TINYINT, SMALLINT, INTEGER, BIGINT, REAL
FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR
or LONGVARCHAR value. The bold SQL type designates the
recommended return type.

getLong

public long getLong(int columnIndex)
throws java.sql.SQLException

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
long value.

Specified by:

getLong in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

the column value; if the value is SQL NULL, the
result is 0

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL TINYINT, SMALLINT, INTEGER, BIGINT, REAL
FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR
or LONGVARCHAR value. The bold SQL type designates the
recommended return type.

getFloat

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
float value.

Specified by:

getFloat in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

the column value; if the value is SQL NULL, the
result is 0

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL TINYINT, SMALLINT, INTEGER, BIGINT, REAL,
FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR
or LONGVARCHAR value. The bold SQL type designates the
recommended return type.

getDouble

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
double value.

Specified by:

getDouble in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

the column value; if the value is SQL NULL, the
result is 0

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL TINYINT, SMALLINT, INTEGER, BIGINT, REAL,
FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR
or LONGVARCHAR value. The bold SQL type designates the
recommended return type.

getBigDecimal

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
java.math.BigDecimal object.

This method is deprecated; use the version of getBigDecimal
that does not take a scale parameter and returns a value with full
precision.

Specified by:

getBigDecimal in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

scale - the number of digits to the right of the decimal point in the
value returned

Returns:

the column value with the specified number of digits to the right
of the decimal point; if the value is SQL NULL, the
result is null

Throws:

java.sql.SQLException - if the given column index is out of bounds,
the cursor is not on a valid row, or this method fails

getBytes

public byte[] getBytes(int columnIndex)
throws java.sql.SQLException

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
byte array value.

Specified by:

getBytes in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

the column value as a byte array in the Java programming
language; if the value is SQL NULL, the
result is null

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL BINARY, VARBINARY or
LONGVARBINARY value.
The bold SQL type designates the recommended return type.

getAsciiStream

Retrieves the value of the designated column in the current row of this
CachedRowSetImpl object as a java.io.InputStream
object.
A column value can be retrieved as a stream of ASCII characters
and then 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 get method implicitly closes the stream. . Also, a
stream may return 0 for CachedRowSetImpl.available()
whether there is data available or not.

Specified by:

getAsciiStream in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

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 result is null.

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL CHAR, VARCHAR, LONGVARCHARBINARY, VARBINARY or LONGVARBINARY value. The
bold SQL type designates the recommended return types that this method is
used to retrieve.

getUnicodeStream

A column value can be retrieved as a stream of Unicode characters
and then 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 get method implicitly closes the stream. . Also, a
stream may return 0 for available() whether there is data
available or not.

Specified by:

getUnicodeStream in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

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
then the result is null.

getBinaryStream

Retrieves the value of the designated column in the current row of this
CachedRowSetImpl object as a java.io.InputStream
object.

A column value can be retrieved as a stream of uninterpreted bytes
and then 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 get method implicitly closes the stream. Also, a
stream may return 0 for
CachedRowSetImpl.available() whether there is data
available or not.

Specified by:

getBinaryStream in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

a Java input stream that delivers the database column value
as a stream of uninterpreted bytes. If the value is SQL NULL
then the result is null.

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL BINARY, VARBINARY or LONGVARBINARY
The bold type indicates the SQL type that this method is recommened
to retrieve.

getString

Retrieves the value stored in the designated column
of the current row as a String object.

Specified by:

getString in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

Returns:

the column value; if the value is SQL NULL,
the result is null

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TINYINT, SMALLINT, INTEGER
BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR,
VARCHAR or LONGVARCHAR< value. The bold SQL type
designates the recommended return type.

getBoolean

Retrieves the value stored in the designated column
of the current row as a boolean value.

Specified by:

getBoolean in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

Returns:

the column value as a boolean in the Java programming
language; if the value is SQL NULL,
the result is false

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL BOOLEAN value

getByte

Retrieves the value stored in the designated column
of the current row as a byte value.

Specified by:

getByte in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

Returns:

the column value as a byte in the Java programming
language; if the value is SQL NULL, the result is 0

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TINYINT, SMALLINT, INTEGER,
BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR,
VARCHAR or LONGVARCHAR value. The
bold type designates the recommended return type

getShort

public short getShort(java.lang.String columnName)
throws java.sql.SQLException

Retrieves the value stored in the designated column
of the current row as a short value.

Specified by:

getShort in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

Returns:

the column value; if the value is SQL NULL,
the result is 0

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TINYINT, SMALLINT, INTEGER
BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR,
VARCHAR or LONGVARCHAR value. The bold SQL type
designates the recommended return type.

getInt

Retrieves the value stored in the designated column
of the current row as an int value.

Specified by:

getInt in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

Returns:

the column value; if the value is SQL NULL,
the result is 0

Throws:

java.sql.SQLException - if (1) the given column name is not the name
of a column in this rowset,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL TINYINT, SMALLINT, INTEGER, BIGINT, REAL
FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR
or LONGVARCHAR value. The bold SQL type designates the
recommended return type.

getLong

public long getLong(java.lang.String columnName)
throws java.sql.SQLException

Retrieves the value stored in the designated column
of the current row as a long value.

Specified by:

getLong in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

Returns:

the column value; if the value is SQL NULL,
the result is 0

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TINYINT, SMALLINT, INTEGER
BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR,
VARCHAR or LONGVARCHAR value. The bold SQL type
designates the recommended return type.

getFloat

Retrieves the value stored in the designated column
of the current row as a float value.

Specified by:

getFloat in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

Returns:

the column value; if the value is SQL NULL,
the result is 0

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TINYINT, SMALLINT, INTEGER
BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR,
VARCHAR or LONGVARCHAR value. The bold SQL type
designates the recommended return type.

getDouble

Retrieves the value stored in the designated column
of the current row of this CachedRowSetImpl object
as a double value.

Specified by:

getDouble in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

Returns:

the column value; if the value is SQL NULL,
the result is 0

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TINYINT, SMALLINT, INTEGER
BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR,
VARCHAR or LONGVARCHAR value. The bold SQL type
designates the recommended return types.

getBigDecimal

Retrieves the value stored in the designated column
of the current row as a java.math.BigDecimal object.

Specified by:

getBigDecimal in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

scale - the number of digits to the right of the decimal point

Returns:

a java.math.BugDecimal object with scale
number of digits to the right of the decimal point.

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TINYINT, SMALLINT, INTEGER
BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT CHAR,
VARCHAR or LONGVARCHAR value. The bold SQL type
designates the recommended return type that this method is used to
retrieve.

getBytes

Retrieves the value stored in the designated column
of the current row as a byte array.
The bytes represent the raw values returned by the driver.

Specified by:

getBytes in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

Returns:

the column value as a byte array in the Java programming
language; if the value is SQL NULL, the result is null

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL BINARY, VARBINARY or LONGVARBINARY values
The bold SQL type designates the recommended return type.

getDate

Retrieves the value stored in the designated column
of the current row as a java.sql.Date object.

Specified by:

getDate in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

Returns:

the column value; if the value is SQL NULL,
the result is null

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL DATE or
TIMESTAMP value

getAsciiStream

Retrieves the value of the designated column in the current row of this
CachedRowSetImpl object as a java.io.InputStream
object.
A column value can be retrieved as a stream of ASCII characters
and then read in chunks from the stream. This method is particularly
suitable for retrieving large LONGVARCHAR values. The
SyncProvider will rely on the JDBC driver to do any necessary
conversion from the database format into ASCII format.

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 getXXX method implicitly closes the stream.

Specified by:

getAsciiStream in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

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 result is null.

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL CHAR, VARCHAR, LONGVARCHARBINARY, VARBINARY or LONGVARBINARY value. The
bold SQL type designates the recommended return types that this method is
used to retrieve.

getUnicodeStream

A column value can be retrieved as a stream of Unicode characters
and then 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 getXXX method implicitly closes the stream.

Specified by:

getUnicodeStream in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

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 result is null.

Throws:

java.sql.SQLException - if the given column name does not match one of
this rowset's column names or the cursor is not on one of
this rowset's rows or its insert row

getBinaryStream

Retrieves the value of the designated column in the current row of this
CachedRowSetImpl object as a java.io.InputStream
object.

A column value can be retrieved as a stream of uninterpreted bytes
and then 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 get method implicitly closes the stream. Also, a
stream may return 0 for CachedRowSetImpl.available()
whether there is data available or not.

Specified by:

getBinaryStream in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

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:

java.sql.SQLException - if (1) the given column name is unknown,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL BINARY, VARBINARY or LONGVARBINARY
The bold type indicates the SQL type that this method is recommened
to retrieve.

getWarnings

The first warning reported by calls on this CachedRowSetImpl
object is returned. Subsequent CachedRowSetImpl warnings will
be chained to this SQLWarning.

The warning chain is automatically cleared each time a new
row is read.

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.

Specified by:

getWarnings in interface java.sql.ResultSet

Returns:

the first SQLWarning or null

clearWarnings

public void clearWarnings()

Clears all the warnings reporeted for the CachedRowSetImpl
object. After a call to this method, the getWarnings method
returns null until a new warning is reported for this
CachedRowSetImpl object.

Specified by:

clearWarnings in interface java.sql.ResultSet

getCursorName

public java.lang.String getCursorName()
throws java.sql.SQLException

Retrieves the name of the SQL cursor used by this
CachedRowSetImpl object.

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

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

Note: If positioned updates are not supported, an
SQLException is thrown.

Specified by:

getCursorName in interface java.sql.ResultSet

Returns:

the SQL cursor name for this CachedRowSetImpl object's
cursor

Throws:

java.sql.SQLException - if an error occurs

getMetaData

Retrieves a ResultSetMetaData object instance that
contains information about the CachedRowSet object.
However, applications should cast the returned object to a
RowSetMetaData interface implementation. In the
reference implementation, this cast can be done on the
RowSetMetaDataImpl class.

For example:

CachedRowSet crs = new CachedRowSetImpl();
RowSetMetaDataImpl metaData =
(RowSetMetaDataImpl)crs.getMetaData();
// Set the number of columns in the RowSet object for
// which this RowSetMetaDataImpl object was created to the
// given number.
metaData.setColumnCount(3);
crs.setMetaData(metaData);

Specified by:

getMetaData in interface java.sql.ResultSet

Returns:

the ResultSetMetaData object that describes this
CachedRowSetImpl object's columns

Throws:

java.sql.SQLException - if an error occurs in generating the RowSet
meta data; or if the CachedRowSetImpl is empty.

getObject

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as an
Object value.

The type of the 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 3.0
specification.

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

This implementation of the method getObject extends its
behavior so that it gets the attributes of an SQL structured type
as an array of Object values. This method also custom
maps SQL user-defined types to classes in the Java programming language.
When the specified column contains
a structured or distinct value, the behavior of this method is as
if it were a call to the method getObject(columnIndex,
this.getStatement().getConnection().getTypeMap()).

Specified by:

getObject in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

a java.lang.Object holding the column value;
if the value is SQL NULL, the result is null

Throws:

java.sql.SQLException - if the given column index is out of bounds,
the cursor is not on a valid row, or there is a problem getting
the Class object for a custom mapping

getObject

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as an
Object value.

The type of the 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 3.0
specification.

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

This implementation of the method getObject extends its
behavior so that it gets the attributes of an SQL structured type
as an array of Object values. This method also custom
maps SQL user-defined types to classes
in the Java programming language. When the specified column contains
a structured or distinct value, the behavior of this method is as
if it were a call to the method getObject(columnIndex,
this.getStatement().getConnection().getTypeMap()).

Specified by:

getObject in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

Returns:

a java.lang.Object holding the column value;
if the value is SQL NULL, the result is null

Throws:

java.sql.SQLException - if (1) the given column name does not match one of
this rowset's column names, (2) the cursor is not
on a valid row, or (3) there is a problem getting
the Class object for a custom mapping

getCharacterStream

Retrieves the value stored in the designated column
of the current row as a java.io.Reader object.

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 getXXX method implicitly closes the stream.

Specified by:

getCharacterStream in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

a Java character stream that delivers the database column value
as a stream of two-byte unicode characters in a
java.io.Reader object. If the value is
SQL NULL, the result is null.

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL CHAR, VARCHAR, LONGVARCHAR, BINARY, VARBINARY or
LONGVARBINARY value.
The bold SQL type designates the recommended return type.

getCharacterStream

Retrieves the value stored in the designated column
of the current row as a java.io.Reader object.

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 getXXX method implicitly closes the stream.

Specified by:

getCharacterStream in interface java.sql.ResultSet

Parameters:

columnName - a String object giving the SQL name of
a column in this CachedRowSetImpl object

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 result is null.

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL CHAR, VARCHAR, LONGVARCHAR,
BINARY, VARYBINARY or LONGVARBINARY value.
The bold SQL type designates the recommended return type.

getBigDecimal

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
java.math.BigDecimal object.

Specified by:

getBigDecimal in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

Returns:

a java.math.BigDecimal value with full precision;
if the value is SQL NULL, the result is null

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL TINYINT, SMALLINT, INTEGER, BIGINT, REAL,
FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR
or LONGVARCHAR value. The bold SQL type designates the
recommended return types that this method is used to retrieve.

getBigDecimal

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
java.math.BigDecimal object.

Specified by:

getBigDecimal in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

Returns:

a java.math.BigDecimal value with full precision;
if the value is SQL NULL, the result is null

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TINYINT, SMALLINT, INTEGER
BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT CHAR,
VARCHAR or LONGVARCHAR value. The bold SQL type
designates the recommended return type that this method is used to
retrieve

isBeforeFirst

Indicates whether the cursor is before the first row in this
CachedRowSetImpl object.

Specified by:

isBeforeFirst in interface java.sql.ResultSet

Returns:

true if the cursor is before the first row;
false otherwise or if the rowset contains no rows

Throws:

java.sql.SQLException - if an error occurs

isAfterLast

public boolean isAfterLast()
throws java.sql.SQLException

Indicates whether the cursor is after the last row in this
CachedRowSetImpl object.

Specified by:

isAfterLast in interface java.sql.ResultSet

Returns:

true if the cursor is after the last row;
false otherwise or if the rowset contains no rows

Throws:

java.sql.SQLException - if an error occurs

isFirst

public boolean isFirst()
throws java.sql.SQLException

Indicates whether the cursor is on the first row in this
CachedRowSetImpl object.

Specified by:

isFirst in interface java.sql.ResultSet

Returns:

true if the cursor is on the first row;
false otherwise or if the rowset contains no rows

Throws:

java.sql.SQLException - if an error occurs

isLast

public boolean isLast()
throws java.sql.SQLException

Indicates whether the cursor is on the last row in this
CachedRowSetImpl 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 this rowset.

Specified by:

isLast in interface java.sql.ResultSet

Returns:

true if the cursor is on the last row;
false otherwise or if this rowset contains no rows

Throws:

java.sql.SQLException - if an error occurs

beforeFirst

public void beforeFirst()
throws java.sql.SQLException

Moves this CachedRowSetImpl object's cursor to the front of
the rowset, just before the first row. This method has no effect if
this rowset contains no rows.

Specified by:

beforeFirst in interface java.sql.ResultSet

Throws:

java.sql.SQLException - if an error occurs or the type of this rowset
is ResultSet.TYPE_FORWARD_ONLY

afterLast

public void afterLast()
throws java.sql.SQLException

Moves this CachedRowSetImpl object's cursor to the end of
the rowset, just after the last row. This method has no effect if
this rowset contains no rows.

Specified by:

afterLast in interface java.sql.ResultSet

Throws:

java.sql.SQLException - if an error occurs

first

public boolean first()
throws java.sql.SQLException

Moves this CachedRowSetImpl object's cursor to the first row
and returns true if the operation was successful. This
method also notifies registered listeners that the cursor has moved.

Specified by:

first in interface java.sql.ResultSet

Returns:

true if the cursor is on a valid row;
false otherwise or if there are no rows in this
CachedRowSetImpl object

Throws:

java.sql.SQLException - if the type of this rowset
is ResultSet.TYPE_FORWARD_ONLY

internalFirst

protected boolean internalFirst()
throws java.sql.SQLException

Moves this CachedRowSetImpl object's cursor to the first
row and returns true if the operation is successful.

This method is called internally by the methods first,
isFirst, and absolute.
It in turn calls the method internalNext in order to
handle the case where the first row is a deleted row that is not visible.

This is a implementation only method and is not required as a standard
implementation of the CachedRowSet interface.

Returns:

true if the cursor moved to the first row;
false otherwise

Throws:

java.sql.SQLException - if an error occurs

last

public boolean last()
throws java.sql.SQLException

Moves this CachedRowSetImpl object's cursor to the last row
and returns true if the operation was successful. This
method also notifies registered listeners that the cursor has moved.

Specified by:

last in interface java.sql.ResultSet

Returns:

true if the cursor is on a valid row;
false otherwise or if there are no rows in this
CachedRowSetImpl object

Throws:

java.sql.SQLException - if the type of this rowset
is ResultSet.TYPE_FORWARD_ONLY

internalLast

protected boolean internalLast()
throws java.sql.SQLException

Moves this CachedRowSetImpl object's cursor to the last
row and returns true if the operation is successful.

This method is called internally by the method last
when rows have been deleted and the deletions are not visible.
The method internalLast handles the case where the
last row is a deleted row that is not visible by in turn calling
the method internalPrevious.

This is a implementation only method and is not required as a standard
implementation of the CachedRowSet interface.

Returns:

true if the cursor moved to the last row;
false otherwise

Throws:

java.sql.SQLException - if an error occurs

getRow

public int getRow()
throws java.sql.SQLException

Returns the number of the current row in this CachedRowSetImpl
object. The first row is number 1, the second number 2, and so on.

Specified by:

getRow in interface java.sql.ResultSet

Returns:

the number of the current row; 0 if there is no
current row

Throws:

java.sql.SQLException - if an error occurs; or if the CacheRowSetImpl
is empty

absolute

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

Moves this CachedRowSetImpl object's cursor to the row number
specified.

If the number is positive, the cursor moves to an absolute row with
respect to the beginning of the rowset. The first row is row 1, the second
is row 2, and so on. For example, the following command, in which
crs is a CachedRowSetImpl object, moves the cursor
to the fourth row, starting from the beginning of the rowset.

crs.absolute(4);

If the number is negative, the cursor moves to an absolute row position
with respect to the end of the rowset. For example, calling
absolute(-1) positions the cursor on the last row,
absolute(-2) moves it on the next-to-last row, and so on.
If the CachedRowSetImpl object crs has five rows,
the following command moves the cursor to the fourth-to-last row, which
in the case of a rowset with five rows, is also the second row, counting
from the beginning.

crs.absolute(-4);

If the number specified is larger than the number of rows, the cursor
will move to the position after the last row. If the number specified
would move the cursor one or more rows before the first row, the cursor
moves to the position before the first row.

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

Specified by:

absolute in interface java.sql.ResultSet

Parameters:

row - a positive number to indicate the row, starting row numbering from
the first row, which is 1; a negative number to indicate
the row, starting row numbering from the last row, which is
-1; it must not be 0

Returns:

true if the cursor is on the rowset; false
otherwise

Throws:

java.sql.SQLException - if the given cursor position is 0 or the
type of this rowset is ResultSet.TYPE_FORWARD_ONLY

relative

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

Moves the cursor the specified number of rows from the current
position, with a positive number moving it forward and a
negative number moving it backward.

If the number is positive, the cursor moves the specified number of
rows toward the end of the rowset, starting at the current row.
For example, the following command, in which
crs is a CachedRowSetImpl object with 100 rows,
moves the cursor forward four rows from the current row. If the
current row is 50, the cursor would move to row 54.

crs.relative(4);

If the number is negative, the cursor moves back toward the beginning
the specified number of rows, starting at the current row.
For example, calling the method
absolute(-1) positions the cursor on the last row,
absolute(-2) moves it on the next-to-last row, and so on.
If the CachedRowSetImpl object crs has five rows,
the following command moves the cursor to the fourth-to-last row, which
in the case of a rowset with five rows, is also the second row
from the beginning.

crs.absolute(-4);

If the number specified is larger than the number of rows, the cursor
will move to the position after the last row. If the number specified
would move the cursor one or more rows before the first row, the cursor
moves to the position before the first row. In both cases, this method
throws an SQLException.

Note: Calling absolute(1) is the same as calling the
method first(). Calling absolute(-1) is the
same as calling last(). Calling relative(0)
is valid, but it does not change the cursor position.

Specified by:

relative in interface java.sql.ResultSet

Parameters:

rows - an int indicating the number of rows to move
the cursor, starting at the current row; a positive number
moves the cursor forward; a negative number moves the cursor
backward; must not move the cursor past the valid
rows

Returns:

true if the cursor is on a row in this
CachedRowSetImpl object; false
otherwise

Throws:

java.sql.SQLException - if there are no rows in this rowset, the cursor is
positioned either before the first row or after the last row, or
the rowset is type ResultSet.TYPE_FORWARD_ONLY

previous

public boolean previous()
throws java.sql.SQLException

Moves this CachedRowSetImpl object's cursor to the
previous row and returns true if the cursor is on
a valid row or false if it is not.
This method also notifies all listeners registered with this
CachedRowSetImpl object that its cursor has moved.

Note: calling the method previous() is not the same
as calling the method relative(-1). This is true
because it is possible to call previous() from the insert
row, from after the last row, or from the current row, whereas
relative may only be called from the current row.

The method previous may used in a while
loop to iterate through a rowset starting after the last row
and moving toward the beginning. The loop ends when previous
returns false, meaning that there are no more rows.
For example, the following code fragment retrieves all the data in
the CachedRowSetImpl object crs, which has
three columns. Note that the cursor must initially be positioned
after the last row so that the first call to the method
previous places the cursor on the last line.

This method throws an SQLException if the cursor is not
on a row in the rowset, before the first row, or after the last row.

Specified by:

previous in interface java.sql.ResultSet

Returns:

true if the cursor is on a valid row;
false if it is before the first row or after the
last row

Throws:

java.sql.SQLException - if the cursor is not on a valid position or the
type of this rowset is ResultSet.TYPE_FORWARD_ONLY

internalPrevious

protected boolean internalPrevious()
throws java.sql.SQLException

Moves the cursor to the previous row in this CachedRowSetImpl
object, skipping past deleted rows that are not visible; returns
true if the cursor is on a row in this rowset and
false when the cursor goes before the first row.

This method is called internally by the method previous.

This is a implementation only method and is not required as a standard
implementation of the CachedRowSet interface.

Returns:

true if the cursor is on a row in this rowset;
false when the cursor reaches the position before
the first row

Throws:

java.sql.SQLException - if an error occurs

rowUpdated

public boolean rowUpdated()
throws java.sql.SQLException

Indicates whether the current row of this CachedRowSetImpl
object has been updated. The value returned
depends on whether this rowset can detect updates: false
will always be returned if it does not detect updates.

Specified by:

rowUpdated in interface java.sql.ResultSet

Returns:

true if the row has been visibly updated
by the owner or another and updates are detected;
false otherwise

Throws:

java.sql.SQLException - if the cursor is on the insert row or not
not on a valid row

See Also:

DatabaseMetaData.updatesAreDetected(int)

columnUpdated

public boolean columnUpdated(int idx)
throws java.sql.SQLException

Indicates whether the designated column of the current row of
this CachedRowSetImpl object has been updated. The
value returned depends on whether this rowset can detcted updates:
false will always be returned if it does not detect updates.

columnUpdated

Indicates whether the designated column of the current row of
this CachedRowSetImpl object has been updated. The
value returned depends on whether this rowset can detcted updates:
false will always be returned if it does not detect updates.

columnName - the String column name column that may be have
been updated.

Returns:

true is the designated column has been updated
and the rowset detects updates; false if the rowset has not
been updated or the rowset does not detect updates

Throws:

java.sql.SQLException - if the cursor is on the insert row or not
on a valid row

See Also:

DatabaseMetaData.updatesAreDetected(int)

rowInserted

public boolean rowInserted()
throws java.sql.SQLException

Indicates whether the current row has been inserted. The value returned
depends on whether or not the rowset can detect visible inserts.

Specified by:

rowInserted in interface java.sql.ResultSet

Returns:

true if a row has been inserted and inserts are detected;
false otherwise

Throws:

java.sql.SQLException - if the cursor is on the insert row or not
not on a valid row

See Also:

DatabaseMetaData.insertsAreDetected(int)

rowDeleted

public boolean rowDeleted()
throws java.sql.SQLException

Indicates whether the current row has been deleted. A deleted row
may leave a visible "hole" in a rowset. This method can be used to
detect such holes if the rowset can detect deletions. This method
will always return false if this rowset cannot detect
deletions.

Specified by:

rowDeleted in interface java.sql.ResultSet

Returns:

true if (1)the current row is blank, indicating that
the row has been deleted, and (2)deletions are detected;
false otherwise

Throws:

java.sql.SQLException - if the cursor is on a valid row in this rowset

See Also:

DatabaseMetaData.deletesAreDetected(int)

updateNull

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

Sets the designated nullable column in the current row or the
insert row of this CachedRowSetImpl object with
null value.

This method updates a column value in the current row or the insert
row of this rowset; however, another method must be called to complete
the update process. If the cursor is on a row in the rowset, the
method updateRow() must be called to mark the row as updated
and to notify listeners that the row has changed.
If the cursor is on the insert row, the method insertRow()
must be called to insert the new row into this rowset and to notify
listeners that a row has changed.

In order to propagate updates in this rowset to the underlying
data source, an application must call the method acceptChanges()
after it calls either updateRow or insertRow.

Specified by:

updateNull in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateBoolean

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
boolean value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateBoolean in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateByte

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
byte value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateByte in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateShort

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
short value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateShort in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateInt

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
int value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateInt in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateLong

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
long value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateLong in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateFloat

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
float value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateFloat in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateDouble

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
double value.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateDouble in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateBigDecimal

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.math.BigDecimal object.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateBigDecimal in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateString

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
String object.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to mark the row as updated.
If the cursor is on the insert row, the method insertRow()
must be called to insert the new row into this rowset and mark it
as inserted. Both of these methods must be called before the
cursor moves to another row.

The method acceptChanges must be called if the
updated values are to be written back to the underlying database.

Specified by:

updateString in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateBytes

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
byte array.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateBytes in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateDate

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Date object.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateDate in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, (3) the type of the designated column is not
an SQL DATE or TIMESTAMP, or
(4) this rowset is ResultSet.CONCUR_READ_ONLY

updateTime

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Time object.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateTime in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, (3) the type of the designated column is not
an SQL TIME or TIMESTAMP, or
(4) this rowset is ResultSet.CONCUR_READ_ONLY

updateTimestamp

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Timestamp object.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateTimestamp in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, (3) the type of the designated column is not
an SQL DATE, TIME, or
TIMESTAMP, or (4) this rowset is
ResultSet.CONCUR_READ_ONLY

updateAsciiStream

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
ASCII stream value.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateAsciiStream in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

updateBinaryStream

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.io.InputStream object.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateBinaryStream in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value; must be a java.io.InputStream
containing BINARY, VARBINARY, or
LONGVARBINARY data

length - the length of the stream in bytes

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, (3) the data in the stream is not binary, or
(4) this rowset is ResultSet.CONCUR_READ_ONLY

updateCharacterStream

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.io.Reader object.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateCharacterStream in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value; must be a java.io.Reader
containing BINARY, VARBINARY,
LONGVARBINARY, CHAR, VARCHAR,
or LONGVARCHAR data

length - the length of the stream in characters

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, (3) the data in the stream is not a binary or
character type, or (4) this rowset is
ResultSet.CONCUR_READ_ONLY

updateObject

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Object value. The scale parameter indicates
the number of digits to the right of the decimal point and is ignored
if the new column value is not a type that will be mapped to an SQL
DECIMAL or NUMERIC value.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateObject in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

scale - the number of digits to the right of the decimal point (for
DECIMAL and NUMERIC types only)

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateObject

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Object value.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateObject in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateNull

Sets the designated nullable column in the current row or the
insert row of this CachedRowSetImpl object with
null value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database.

Specified by:

updateNull in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateBoolean

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
boolean value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateBoolean in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateByte

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
byte value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateByte in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateShort

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
short value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateShort in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateInt

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
int value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateInt in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateLong

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
long value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateLong in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateFloat

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
float value.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateFloat in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateDouble

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
double value.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateDouble in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateBigDecimal

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.math.BigDecimal object.

This method updates a column value in the current row or the insert
row of this rowset, but it does not update the database.
If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateBigDecimal in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateString

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
String object.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateString in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateBytes

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
byte array.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateBytes in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateDate

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Date object.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateDate in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, (3) the type
of the designated column is not an SQL DATE or
TIMESTAMP, or (4) this rowset is
ResultSet.CONCUR_READ_ONLY

updateTime

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Time object.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateTime in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, (3) the type
of the designated column is not an SQL TIME or
TIMESTAMP, or (4) this rowset is
ResultSet.CONCUR_READ_ONLY

updateTimestamp

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Timestamp object.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateTimestamp in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if the given column index is out of bounds or
the cursor is not on one of this rowset's rows or its
insert row

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, (3) the type
of the designated column is not an SQL DATE,
TIME, or TIMESTAMP, or (4) this
rowset is ResultSet.CONCUR_READ_ONLY

updateAsciiStream

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
ASCII stream value.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateAsciiStream in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

updateBinaryStream

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.io.InputStream object.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateBinaryStream in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value; must be a java.io.InputStream
containing BINARY, VARBINARY, or
LONGVARBINARY data

length - the length of the stream in bytes

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, (3) the data
in the stream is not binary, or (4) this rowset is
ResultSet.CONCUR_READ_ONLY

updateCharacterStream

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.io.Reader object.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateCharacterStream in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

reader - the new column value; must be a
java.io.Reader containing BINARY,
VARBINARY, LONGVARBINARY, CHAR,
VARCHAR, or LONGVARCHAR data

length - the length of the stream in characters

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, (3) the data
in the stream is not a binary or character type, or (4) this
rowset is ResultSet.CONCUR_READ_ONLY

updateObject

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Object value. The scale parameter
indicates the number of digits to the right of the decimal point
and is ignored if the new column value is not a type that will be
mapped to an SQL DECIMAL or NUMERIC value.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateObject in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

scale - the number of digits to the right of the decimal point (for
DECIMAL and NUMERIC types only)

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateObject

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Object value.

This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateObject in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

x - the new column value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

insertRow

public void insertRow()
throws java.sql.SQLException

Inserts the contents of this CachedRowSetImpl object's insert
row into this rowset immediately following the current row.
If the current row is the
position after the last row or before the first row, the new row will
be inserted at the end of the rowset. This method also notifies
listeners registered with this rowset that the row has changed.

The cursor must be on the insert row when this method is called.

Specified by:

insertRow in interface java.sql.ResultSet

Throws:

java.sql.SQLException - if (1) the cursor is not on the insert row,
(2) one or more of the non-nullable columns in the insert
row has not been given a value, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateRow

public void updateRow()
throws java.sql.SQLException

Marks the current row of this CachedRowSetImpl object as
updated and notifies listeners registered with this rowset that the
row has changed.

This method cannot be called when the cursor is on the insert row, and
it should be called before the cursor moves to another row. If it is
called after the cursor moves to another row, this method has no effect,
and the updates made before the cursor moved will be lost.

Specified by:

updateRow in interface java.sql.ResultSet

Throws:

java.sql.SQLException - if the cursor is on the insert row or this
rowset is ResultSet.CONCUR_READ_ONLY

deleteRow

public void deleteRow()
throws java.sql.SQLException

Deletes the current row from this CachedRowSetImpl object and
notifies listeners registered with this rowset that a row has changed.
This method cannot be called when the cursor is on the insert row.

This method marks the current row as deleted, but it does not delete
the row from the underlying data source. The method
acceptChanges must be called to delete the row in
the data source.

Specified by:

deleteRow in interface java.sql.ResultSet

Throws:

java.sql.SQLException - if (1) this method is called when the cursor
is on the insert row, before the first row, or after the
last row or (2) this rowset is
ResultSet.CONCUR_READ_ONLY

refreshRow

public void refreshRow()
throws java.sql.SQLException

Sets the current row with its original value and marks the row as
not updated, thus undoing any changes made to the row since the
last call to the methods updateRow or deleteRow.
This method should be called only when the cursor is on a row in
this rowset.

Specified by:

refreshRow in interface java.sql.ResultSet

Throws:

java.sql.SQLException - if the cursor is on the insert row, before the
first row, or after the last row

cancelRowUpdates

public void cancelRowUpdates()
throws java.sql.SQLException

Rolls back any updates made to the current row of this
CachedRowSetImpl object and notifies listeners that
a row has changed. To have an effect, this method
must be called after an updateXXX method has been
called and before the method updateRow has been called.
If no updates have been made or the method updateRow
has already been called, this method has no effect.

Specified by:

cancelRowUpdates in interface java.sql.ResultSet

Throws:

java.sql.SQLException - if the cursor is on the insert row, before the
first row, or after the last row

moveToInsertRow

public void moveToInsertRow()
throws java.sql.SQLException

Moves the cursor for this CachedRowSetImpl object
to the insert row. The current row in the rowset is remembered
while the cursor is on the insert row.

The insert row is a special row associated with an updatable
rowset. It is essentially a buffer where a new row may
be constructed by calling the appropriate updateXXX
methods to assign a value to each column in the row. A complete
row must be constructed; that is, every column that is not nullable
must be assigned a value. In order for the new row to become part
of this rowset, the method insertRow must be called
before the cursor is moved back to the rowset.

Only certain methods may be invoked while the cursor is on the insert
row; many methods throw an exception if they are called while the
cursor is there. In addition to the updateXXX
and insertRow methods, only the getXXX methods
may be called when the cursor is on the insert row. A getXXX
method should be called on a column only after an updateXXX
method has been called on that column; otherwise, the value returned is
undetermined.

Specified by:

moveToInsertRow in interface java.sql.ResultSet

Throws:

java.sql.SQLException - if this CachedRowSetImpl object is
ResultSet.CONCUR_READ_ONLY

moveToCurrentRow

public void moveToCurrentRow()
throws java.sql.SQLException

Moves the cursor for this CachedRowSetImpl object to
the current row. The current row is the row the cursor was on
when the method moveToInsertRow was called.

Calling this method has no effect unless it is called while the
cursor is on the insert row.

getRef

Retrieves the value of the designated column in this
CachedRowSetImpl object as a Ref object
in the Java programming language.

Specified by:

getRef in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

Returns:

a Ref object representing an SQL REF value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL REF value

getBlob

Retrieves the value of the designated column in this
CachedRowSetImpl object as a Blob object
in the Java programming language.

Specified by:

getBlob in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

Returns:

a Blob object representing an SQL BLOB value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL BLOB value

getClob

Retrieves the value of the designated column in this
CachedRowSetImpl object as a Clob object
in the Java programming language.

Specified by:

getClob in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

Returns:

a Clob object representing an SQL CLOB value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL CLOB value

getArray

Retrieves the value of the designated column in this
CachedRowSetImpl object as an Array object
in the Java programming language.

Specified by:

getArray in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

Returns:

an Array object representing an SQL
ARRAY value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL ARRAY value

getRef

Retrieves the value of the designated column in this
CachedRowSetImpl object as a Ref object
in the Java programming language.

Specified by:

getRef in interface java.sql.ResultSet

Parameters:

colName - a String object that must match the
SQL name of a column in this rowset, ignoring case

Returns:

a Ref object representing an SQL REF value

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the column value
is not an SQL REF value

getBlob

Retrieves the value of the designated column in this
CachedRowSetImpl object as a Blob object
in the Java programming language.

Specified by:

getBlob in interface java.sql.ResultSet

Parameters:

colName - a String object that must match the
SQL name of a column in this rowset, ignoring case

Returns:

a Blob object representing an SQL BLOB value

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL BLOB value

getClob

Retrieves the value of the designated column in this
CachedRowSetImpl object as a Clob object
in the Java programming language.

Specified by:

getClob in interface java.sql.ResultSet

Parameters:

colName - a String object that must match the
SQL name of a column in this rowset, ignoring case

Returns:

a Clob object representing an SQL
CLOB value

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL CLOB value

getArray

Retrieves the value of the designated column in this
CachedRowSetImpl object as an Array object
in the Java programming langugage.

Specified by:

getArray in interface java.sql.ResultSet

Parameters:

colName - a String object that must match the
SQL name of a column in this rowset, ignoring case

Returns:

an Array object representing an SQL
ARRAY value

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL ARRAY value

getDate

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a java.sql.Date
object, using the given Calendar object to construct an
appropriate millisecond value for the date.

Specified by:

getDate in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

cal - the java.util.Calendar object to use in
constructing the date

Returns:

the column value; if the value is SQL NULL,
the result is null

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL DATE or
TIMESTAMP value

getDate

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a java.sql.Date
object, using the given Calendar object to construct an
appropriate millisecond value for the date.

Specified by:

getDate in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

cal - the java.util.Calendar object to use in
constructing the date

Returns:

the column value; if the value is SQL NULL,
the result is null

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL DATE or
TIMESTAMP value

getTime

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a java.sql.Time
object, using the given Calendar object to construct an
appropriate millisecond value for the date.

Specified by:

getTime in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

cal - the java.util.Calendar object to use in
constructing the date

Returns:

the column value; if the value is SQL NULL,
the result is null

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TIME or
TIMESTAMP value

getTime

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a java.sql.Time
object, using the given Calendar object to construct an
appropriate millisecond value for the date.

Specified by:

getTime in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

cal - the java.util.Calendar object to use in
constructing the date

Returns:

the column value; if the value is SQL NULL,
the result is null

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TIME or
TIMESTAMP value

getTimestamp

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a java.sql.Timestamp
object, using the given Calendar object to construct an
appropriate millisecond value for the date.

Specified by:

getTimestamp in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in the rowset

cal - the java.util.Calendar object to use in
constructing the date

Returns:

the column value; if the value is SQL NULL,
the result is null

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL TIME or
TIMESTAMP value

getTimestamp

Retrieves the value of the designated column in the current row
of this CachedRowSetImpl object as a
java.sql.Timestamp object, using the given
Calendar object to construct an appropriate
millisecond value for the date.

Specified by:

getTimestamp in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

cal - the java.util.Calendar object to use in
constructing the date

Returns:

the column value; if the value is SQL NULL,
the result is null

Throws:

java.sql.SQLException - if (1) the given column name is not the name of
a column in this rowset, (2) the cursor is not on one of
this rowset's rows or its insert row, or (3) the designated
column does not store an SQL DATE,
TIME, or TIMESTAMP value

setMetaData

Sets the metadata for this CachedRowSetImpl object
with the given RowSetMetaData object.

Specified by:

setMetaData in interface javax.sql.RowSetInternal

Parameters:

md - a RowSetMetaData object instance containing
metadata about the columsn in the rowset

Throws:

java.sql.SQLException - if invalid meta data is supplied to the
rowset

getOriginal

public java.sql.ResultSet getOriginal()
throws java.sql.SQLException

Returns a result set containing the original value of the rowset. The
original value is the state of the CachedRowSetImpl after the
last population or synchronization (whichever occured most recently) with
the data source.

The cursor is positioned before the first row in the result set.
Only rows contained in the result set returned by getOriginal()
are said to have an original value.

Specified by:

getOriginal in interface javax.sql.RowSetInternal

Returns:

the original result set of the rowset

Throws:

java.sql.SQLException - if an error occurs produce the
ResultSet object

getOriginalRow

Returns a result set containing the original value of the current
row only.
The original value is the state of the CachedRowSetImpl after
the last population or synchronization (whichever occured most recently)
with the data source.

keys - an array of int indicating the
columns that form a primary key for this
CachedRowSetImpl object; every
element in the array must be greater than
0 and less than or equal to the number
of columns in this rowset

Throws:

java.sql.SQLException - if any of the numbers in the
given array is not valid for this rowset

updateRef

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
Ref value.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateRef in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

ref - the new column java.sql.Ref value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateRef

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
double value.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateRef in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

ref - the new column java.sql.Ref value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateClob

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
double value.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateClob in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

c - the new column Clob value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateClob

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
double value.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateClob in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

c - the new column Clob value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateBlob

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.sql.Blob value.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateBlob in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

b - the new column Blob value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateBlob

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.sql.Blob value.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateBlob in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

b - the new column Blob value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

updateArray

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.sql.Array values.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateArray in interface java.sql.ResultSet

Parameters:

columnIndex - the first column is 1, the second
is 2, and so on; must be 1 or larger
and equal to or less than the number of columns in this rowset

a - the new column Array value

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) this rowset is
ResultSet.CONCUR_READ_ONLY

updateArray

Sets the designated column in either the current row or the insert
row of this CachedRowSetImpl object with the given
java.sql.Array value.
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database. If the cursor is on a row in the rowset, the
method updateRow() must be called to update the database.
If the cursor is on the insert row, the method insertRow()
must be called, which will insert the new row into both this rowset
and the database. Both of these methods must be called before the
cursor moves to another row.

Specified by:

updateArray in interface java.sql.ResultSet

Parameters:

columnName - a String object that must match the
SQL name of a column in this rowset, ignoring case

a - the new column Array value

Throws:

java.sql.SQLException - if (1) the given column name does not match the
name of a column in this rowset, (2) the cursor is not on
one of this rowset's rows or its insert row, or (3) this
rowset is ResultSet.CONCUR_READ_ONLY

getURL

Retrieves the value of the designated column in this
CachedRowSetImpl object as a java.net.URL object
in the Java programming language.

Specified by:

getURL in interface java.sql.ResultSet

Returns:

a java.net.URL object containing the resource reference described by
the URL

Throws:

java.sql.SQLException - if (1) the given column index is out of bounds,
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL DATALINK value.

getURL

Retrieves the value of the designated column in this
CachedRowSetImpl object as a java.net.URL object
in the Java programming language.

Specified by:

getURL in interface java.sql.ResultSet

Returns:

a java.net.URL object containing the resource reference described by
the URL

Throws:

java.sql.SQLException - if (1) the given column name not the name of a column
in this rowset, or
(2) the cursor is not on one of this rowset's rows or its
insert row, or (3) the designated column does not store an
SQL DATALINK value.

getRowSetWarnings

The first warning reported by calls on this CachedRowSetImpl
object is returned. Subsequent CachedRowSetImpl warnings will
be chained to this SQLWarning. All RowSetWarnings
warnings are generated in the disconnected environment and remain a
seperate warning chain to that provided by the getWarnings
method.

The warning chain is automatically cleared each time a new
row is read.

Note: This warning chain only covers warnings caused
by CachedRowSet (and their child interface)
methods. All SQLWarnings can be obtained using the
getWarnings method which tracks warnings generated
by the underlying JDBC driver.

rowSetPopulated

Notifies registered listeners that a RowSet object in the given RowSetEvent
object has populated a number of additional rows. The numRows parameter
ensures that this event will only be fired every numRow.

The source of the event can be retrieved with the method event.getSource.

populate

Populates this CachedRowSet object with data from
the given ResultSet object. While related to the populate(ResultSet)
method, an additional parameter is provided to allow starting position within
the ResultSet from where to populate the CachedRowSet
instance.
This method is an alternative to the method execute
for filling the rowset with data. The method populate
does not require that the properties needed by the method
execute, such as the command property,
be set. This is true because the method populate
is given the ResultSet object from
which to get data and thus does not need to use the properties
required for setting up a connection and executing this
CachedRowSetImpl object's command.

After populating this rowset with data, the method
populate sets the rowset's metadata and
then sends a RowSetChangedEvent object
to all registered listeners prior to returning.