org.apache.derby.impl.jdbc
Class EmbedResultSet

java.lang.Object
  extended byorg.apache.derby.impl.jdbc.ConnectionChild
      extended byorg.apache.derby.impl.jdbc.EmbedResultSet
All Implemented Interfaces:
java.lang.Comparable, java.sql.ResultSet
Direct Known Subclasses:
EmbedResultSet169, EmbedResultSet20

public abstract class EmbedResultSet
extends ConnectionChild
implements java.sql.ResultSet, java.lang.Comparable

A EmbedResultSet for results from the EmbedStatement family.

Supports

Author:
ames

Field Summary
protected static int ABSOLUTE
           
protected static int AFTERLAST
           
protected static int BEFOREFIRST
           
protected static boolean CLOSE
           
private  boolean[] columnGotUpdated
           
protected  int concurrencyOfThisResultSet
           
private  DataValueDescriptor[] copyOfDatabaseRow
           
protected  ExecRow currentRow
           
private  boolean currentRowHasBeenUpdated
           
private  java.lang.Object currentStream
           
protected  InternalDriver factory
          Factory for JDBC objects to be created.
private  int fetchDirection
           
private  int fetchSize
           
(package private)  Activation finalizeActivation
           
protected static int FIRST
           
private  boolean forMetaData
           
protected  boolean isAtomic
           
protected  boolean isClosed
           
protected static int LAST
           
protected  EmbedConnection localConn
           
private  int maxFieldSize
           
private  int maxRows
           
protected static int NEXT
           
protected static boolean NOCLOSE
           
private  int NumberofFetchedRows
           
(package private)  int order
           
private  EmbedStatement owningStmt
           
protected static int PREVIOUS
           
protected static int RELATIVE
           
private  ResultDescription resultDescription
           
private  java.sql.ResultSetMetaData rMetaData
           
private  DataValueDescriptor[] rowData
           
protected  EmbedStatement stmt
           
protected  ResultSet theResults
           
private  java.sql.SQLWarning topWarning
           
protected  boolean wasNull
           
 
Fields inherited from interface java.sql.ResultSet
CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE
 
Constructor Summary
EmbedResultSet(EmbedConnection conn, ResultSet resultsToWrap, boolean forMetaData, EmbedStatement stmt, boolean isAtomic)
          This class provides the glue between the Cloudscape resultset and the JDBC resultset, mapping calls-to-calls.
 
Method Summary
 boolean absolute(int row)
          JDBC 2.0 Move to an absolute row number in the result set.
 void afterLast()
          JDBC 2.0 Moves to the end of the result set, just after the last row.
 void beforeFirst()
          JDBC 2.0 Moves to the front of the result set, just before the first row.
 void cancelRowUpdates()
          JDBC 2.0 The cancelRowUpdates() method may be called after calling an updateXXX() method(s) and before calling updateRow() to rollback the updates made to a row.
protected  void checkExecIfClosed(java.lang.String operation)
           
protected  void checkIfClosed(java.lang.String operation)
          Throw an exception if this ResultSet is closed.
protected  DataValueDescriptor[] checkOnRow()
           
private  boolean checkRowPosition(int position, java.lang.String positionText)
           
protected  void checksBeforeUpdateOrDelete(java.lang.String methodName, int columnIndex)
           
protected  void checksBeforeUpdateXXX(java.lang.String methodName, int columnIndex)
           
private  void checkScrollCursor(java.lang.String methodName)
           
 void clearWarnings()
          After this call getWarnings returns null until a new warning is reported for this ResultSet.
 void close()
          In some cases, it is desirable to immediately release a ResultSet's database and JDBC resources instead of waiting for this to happen when it is automatically closed; the close method provides this immediate release.
protected  void closeCurrentStream()
          Documented behaviour for streams is that they are implicitly closed on the next get*() method call.
protected  java.sql.SQLException closeOnTransactionError(java.lang.Throwable thrownException)
           
protected  void commitIfAutoCommit()
          Perform a commit if autocommit is enabled.
protected  void commitIfNeeded()
          Perform a commit if one is needed.
 int compareTo(java.lang.Object other)
           
protected  java.sql.SQLException dataTypeConversion(int column, java.lang.String targetType)
           
protected  java.sql.SQLException dataTypeConversion(java.lang.String targetType, int column)
           
 void deleteRow()
          JDBC 2.0 Delete the current row from the result set and the underlying database.
protected  void finalize()
          JDBC states that a ResultSet is closed when garbage collected.
 int findColumn(java.lang.String columnName)
          Map a Resultset column name to a ResultSet column index.
protected  int findColumnName(java.lang.String columnName)
          Map a Resultset column name to a ResultSet column index.
 boolean first()
          JDBC 2.0 Moves to the first row in the result set.
 java.io.InputStream getAsciiStream(int columnIndex)
          Pushes a converter on top of getCharacterStream().
 java.io.InputStream getAsciiStream(java.lang.String columnName)
          A column value can be retrieved as a stream of ASCII characters and then read in chunks from the stream.
 java.io.InputStream getBinaryStream(int columnIndex)
          Get the column as an InputStream.
 java.io.InputStream getBinaryStream(java.lang.String columnName)
          A column value can be retrieved as a stream of uninterpreted bytes and then read in chunks from the stream.
 java.sql.Blob getBlob(int columnIndex)
          JDBC 2.0 Get a BLOB column.
 java.sql.Blob getBlob(java.lang.String columnName)
          JDBC 2.0 Get a BLOB column.
 boolean getBoolean(int columnIndex)
          Get the value of a column in the current row as a Java boolean.
 boolean getBoolean(java.lang.String columnName)
          Get the value of a column in the current row as a Java boolean.
 byte getByte(int columnIndex)
          Get the value of a column in the current row as a Java byte.
 byte getByte(java.lang.String columnName)
          Get the value of a column in the current row as a Java byte.
 byte[] getBytes(int columnIndex)
          Get the value of a column in the current row as a Java byte array.
 byte[] getBytes(java.lang.String columnName)
          Get the value of a column in the current row as a Java byte array.
protected  java.util.Calendar getCal()
          Get and save a unique calendar object for this JDBC object.
 java.io.Reader getCharacterStream(int columnIndex)
          JDBC 2.0 Get the value of a column in the current row as a java.io.Reader.
 java.io.Reader getCharacterStream(java.lang.String columnName)
          JDBC 2.0 Get the value of a column in the current row as a java.io.Reader.
 java.sql.Clob getClob(int columnIndex)
          JDBC 2.0 Get a CLOB column.
 java.sql.Clob getClob(java.lang.String columnName)
          JDBC 2.0 Get a CLOB column.
protected  DataValueDescriptor getColumn(int columnIndex)
          Get the column value for a getXXX() call.
(package private)  int getColumnType(int columnIndex)
          Check the column is in range *and* return the JDBC type of the column.
 int getConcurrency()
          JDBC 2.0 Return the concurrency of this result set.
protected  java.lang.Object getConnectionSynchronization()
          Return an object to be used for connection synchronization.
 ContextManager getContextManager()
           
 java.lang.String getCursorName()
          Get the name of the SQL cursor used by this ResultSet.
 Database getDatabase()
           
 java.sql.Date getDate(int columnIndex)
          Get the value of a column in the current row as a java.sql.Date object.
 java.sql.Date getDate(int columnIndex, java.util.Calendar cal)
          JDBC 2.0 Get the value of a column in the current row as a java.sql.Date object.
 java.sql.Date getDate(java.lang.String columnName)
          Get the value of a column in the current row as a java.sql.Date object.
 java.sql.Date getDate(java.lang.String columnName, java.util.Calendar cal)
          JDBC 2.0 Get the value of a column in the current row as a java.sql.Date object.
 double getDouble(int columnIndex)
          Get the value of a column in the current row as a Java double.
 double getDouble(java.lang.String columnName)
          Get the value of a column in the current row as a Java double.
protected  DataValueDescriptor getDVDforColumnToBeUpdated(int columnIndex, java.lang.String updateMethodName)
           
protected  EmbedConnection getEmbedConnection()
          Return a reference to the EmbedConnection
 int getFetchDirection()
          JDBC 2.0 Return the fetch direction for this result set.
 int getFetchSize()
          JDBC 2.0 Return the fetch size for this result set.
 float getFloat(int columnIndex)
          Get the value of a column in the current row as a Java float.
 float getFloat(java.lang.String columnName)
          Get the value of a column in the current row as a Java float.
private  java.lang.String getFullBaseTableName(ExecCursorTableReference targetTable)
           
 int getInt(int columnIndex)
          Get the value of a column in the current row as a Java int.
 int getInt(java.lang.String columnName)
          Get the value of a column in the current row as a Java int.
 long getLong(int columnIndex)
          Get the value of a column in the current row as a Java long.
 long getLong(java.lang.String columnName)
          Get the value of a column in the current row as a Java long.
 java.sql.ResultSetMetaData getMetaData()
          The number, types and properties of a ResultSet's columns are provided by the getMetaData method.
 java.lang.Object getObject(int columnIndex)
          Get the value of a column in the current row as a Java object.
 java.lang.Object getObject(java.lang.String columnName)
          Get the value of a column in the current row as a Java object.
protected  ParameterValueSet getParameterValueSet()
          Try to see if we can fish the pvs out of the local statement.
 int getRow()
          JDBC 2.0 Determine the current row number.
 short getShort(int columnIndex)
          Get the value of a column in the current row as a Java short.
 short getShort(java.lang.String columnName)
          Get the value of a column in the current row as a Java short.
protected  java.lang.String getSQLText()
          Try to see if we can fish the SQL Statement out of the local statement.
 java.sql.Statement getStatement()
          JDBC 2.0 Return the Statement that produced the ResultSet.
 java.lang.String getString(int columnIndex)
          Get the value of a column in the current row as a Java String.
 java.lang.String getString(java.lang.String columnName)
          Get the value of a column in the current row as a Java String.
 java.sql.Time getTime(int columnIndex)
          Get the value of a column in the current row as a java.sql.Time object.
 java.sql.Time getTime(int columnIndex, java.util.Calendar cal)
          JDBC 2.0 Get the value of a column in the current row as a java.sql.Time object.
 java.sql.Time getTime(java.lang.String columnName)
          Get the value of a column in the current row as a java.sql.Time object.
 java.sql.Time getTime(java.lang.String columnName, java.util.Calendar cal)
          JDBC 2.0 Get the value of a column in the current row as a java.sql.Time object.
 java.sql.Timestamp getTimestamp(int columnIndex)
          Get the value of a column in the current row as a java.sql.Timestamp object.
 java.sql.Timestamp getTimestamp(int columnIndex, java.util.Calendar cal)
          JDBC 2.0 Get the value of a column in the current row as a java.sql.Timestamp object.
 java.sql.Timestamp getTimestamp(java.lang.String columnName)
          Get the value of a column in the current row as a java.sql.Timestamp object.
 java.sql.Timestamp getTimestamp(java.lang.String columnName, java.util.Calendar cal)
          JDBC 2.0 Get the value of a column in the current row as a java.sql.Timestamp object.
 int getType()
          JDBC 2.0 Return the type of this result set.
 java.net.URL getURL(int columnIndex)
          JDBC 3.0 Retrieves the value of the designated column in the current row of this ResultSet object as a java.net.URL object in the Java programming language.
 java.net.URL getURL(java.lang.String columnName)
          JDBC 3.0 Retrieves the value of the designated column in the current row of this ResultSet object as a java.net.URL object in the Java programming language.
 java.sql.SQLWarning getWarnings()
          The first warning reported by calls on this ResultSet is returned.
protected  java.sql.SQLException handleException(java.lang.Throwable t)
          Handle any exception.
protected  java.sql.SQLException handleException(java.lang.Throwable t, boolean close)
          Handle any exception.
 void insertRow()
          JDBC 2.0 Insert the contents of the insert row into the result set and the database.
 boolean isAfterLast()
          JDBC 2.0 Determine if the cursor is after the last row in the result set.
 boolean isBeforeFirst()
          JDBC 2.0 Determine if the cursor is before the first row in the result set.
 boolean isFirst()
          JDBC 2.0 Determine if the cursor is on the first row of the result set.
 boolean isForUpdate()
          * Is this result set from a select for update statement?
 boolean isLast()
          JDBC 2.0 Determine if the cursor is on the last row of the result set.
private static boolean isMaxFieldSizeType(int colType)
           
 boolean last()
          JDBC 2.0 Moves to the last row in the result set.
protected  boolean movePosition(int position, int row, java.lang.String positionText)
           
protected  boolean movePosition(int position, java.lang.String positionText)
           
 void moveToCurrentRow()
          JDBC 2.0 Move the cursor to the remembered cursor position, usually the current row.
 void moveToInsertRow()
          JDBC 2.0 Move to the insert row.
protected  void needCommit()
          If Autocommit is on, note that a commit is needed.
protected  EmbedResultSetMetaData newEmbedResultSetMetaData(ResultDescription resultDesc)
           
protected  java.sql.SQLException newSQLException(java.lang.String messageId)
           
protected  java.sql.SQLException newSQLException(java.lang.String messageId, java.lang.Object arg1)
           
protected  java.sql.SQLException newSQLException(java.lang.String messageId, java.lang.Object arg1, java.lang.Object arg2)
           
 boolean next()
          A ResultSet is initially positioned before its first row; the first call to next makes the first row the current row; the second call makes the second row the current row, etc.
static java.sql.SQLException noStateChangeException(java.lang.Throwable thrownException)
          An exception on many method calls to JDBC objects does not change the state of the transaction or statement, or even the underlying object.
 boolean previous()
          JDBC 2.0 Moves to the previous row in the result set.
 void refreshRow()
          JDBC 2.0 Refresh the value of the current row with its current value in the database.
 boolean relative(int row)
          JDBC 2.0 Moves a relative number of rows, either positive or negative.
protected  void restoreContextStack()
          Setup the context stack (a.k.a. context manager) for this connection.
 boolean rowDeleted()
          JDBC 2.0 Determine if this row has been deleted.
 boolean rowInserted()
          JDBC 2.0 Determine if the current row has been inserted.
 boolean rowUpdated()
          JDBC 2.0 Determine if the current row has been updated.
(package private)  void setDynamicResultSet(EmbedStatement owningStmt)
          A dynamic result set was created in a procedure by a nested connection.
 void setFetchDirection(int direction)
          JDBC 2.0 Give a hint as to the direction in which the rows in this result set will be processed.
 void setFetchSize(int rows)
          JDBC 2.0 Give the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this result set.
protected  void setupContextStack()
          Setup the context stack (a.k.a. context manager) for this connection.
 void updateAsciiStream(int columnIndex, java.io.InputStream x, int length)
          JDBC 2.0 Update a column with an ascii stream value.
 void updateAsciiStream(java.lang.String columnName, java.io.InputStream x, int length)
          JDBC 2.0 Update a column with an ascii stream value.
 void updateBinaryStream(int columnIndex, java.io.InputStream x, int length)
          JDBC 2.0 Update a column with a binary stream value.
 void updateBinaryStream(java.lang.String columnName, java.io.InputStream x, int length)
          JDBC 2.0 Update a column with a binary stream value.
protected  void updateBinaryStreamInternal(int columnIndex, java.io.InputStream x, int length, java.lang.String updateMethodName)
           
 void updateBlob(int columnIndex, java.sql.Blob x)
          JDBC 3.0 Updates the designated column with a java.sql.Blob value.
 void updateBlob(java.lang.String columnName, java.sql.Blob x)
          JDBC 3.0 Updates the designated column with a java.sql.Blob value.
 void updateBoolean(int columnIndex, boolean x)
          JDBC 2.0 Update a column with a boolean value.
 void updateBoolean(java.lang.String columnName, boolean x)
          JDBC 2.0 Update a column with a boolean value.
 void updateByte(int columnIndex, byte x)
          JDBC 2.0 Update a column with a byte value.
 void updateByte(java.lang.String columnName, byte x)
          JDBC 2.0 Update a column with a byte value.
 void updateBytes(int columnIndex, byte[] x)
          JDBC 2.0 Update a column with a byte array value.
 void updateBytes(java.lang.String columnName, byte[] x)
          JDBC 2.0 Update a column with a byte array value.
 void updateCharacterStream(int columnIndex, java.io.Reader x, int length)
          JDBC 2.0 Update a column with a character stream value.
 void updateCharacterStream(java.lang.String columnName, java.io.Reader reader, int length)
          JDBC 2.0 Update a column with a character stream value.
protected  void updateCharacterStreamInternal(int columnIndex, java.io.Reader reader, int length, java.lang.String updateMethodName)
           
 void updateClob(int columnIndex, java.sql.Clob x)
          JDBC 3.0 Updates the designated column with a java.sql.Clob value.
 void updateClob(java.lang.String columnName, java.sql.Clob x)
          JDBC 3.0 Updates the designated column with a java.sql.Clob value.
 void updateDate(int columnIndex, java.sql.Date x)
          JDBC 2.0 Update a column with a Date value.
 void updateDate(java.lang.String columnName, java.sql.Date x)
          JDBC 2.0 Update a column with a Date value.
 void updateDouble(int columnIndex, double x)
          JDBC 2.0 Update a column with a Double value.
 void updateDouble(java.lang.String columnName, double x)
          JDBC 2.0 Update a column with a double value.
 void updateFloat(int columnIndex, float x)
          JDBC 2.0 Update a column with a float value.
 void updateFloat(java.lang.String columnName, float x)
          JDBC 2.0 Update a column with a float value.
 void updateInt(int columnIndex, int x)
          JDBC 2.0 Update a column with an integer value.
 void updateInt(java.lang.String columnName, int x)
          JDBC 2.0 Update a column with an integer value.
 void updateLong(int columnIndex, long x)
          JDBC 2.0 Update a column with a long value.
 void updateLong(java.lang.String columnName, long x)
          JDBC 2.0 Update a column with a long value.
 void updateNull(int columnIndex)
          JDBC 2.0 Give a nullable column a null value.
 void updateNull(java.lang.String columnName)
          JDBC 2.0 Update a column with a null value.
 void updateObject(int columnIndex, java.lang.Object x)
          JDBC 2.0 Update a column with an Object value.
 void updateObject(int columnIndex, java.lang.Object x, int scale)
          JDBC 2.0 Update a column with an Object value.
 void updateObject(java.lang.String columnName, java.lang.Object x)
          JDBC 2.0 Update a column with an Object value.
 void updateObject(java.lang.String columnName, java.lang.Object x, int scale)
          JDBC 2.0 Update a column with an Object value.
 void updateRow()
          JDBC 2.0 Update the underlying database with the new contents of the current row.
 void updateShort(int columnIndex, short x)
          JDBC 2.0 Update a column with a short value.
 void updateShort(java.lang.String columnName, short x)
          JDBC 2.0 Update a column with a short value.
 void updateString(int columnIndex, java.lang.String x)
          JDBC 2.0 Update a column with a String value.
 void updateString(java.lang.String columnName, java.lang.String x)
          JDBC 2.0 Update a column with a String value.
 void updateTime(int columnIndex, java.sql.Time x)
          JDBC 2.0 Update a column with a Time value.
 void updateTime(java.lang.String columnName, java.sql.Time x)
          JDBC 2.0 Update a column with a Time value.
 void updateTimestamp(int columnIndex, java.sql.Timestamp x)
          JDBC 2.0 Update a column with a Timestamp value.
 void updateTimestamp(java.lang.String columnName, java.sql.Timestamp x)
          JDBC 2.0 Update a column with a Timestamp value.
 boolean wasNull()
          A column may have the value of SQL NULL; wasNull reports whether the last column read had this special value.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.sql.ResultSet
getArray, getArray, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getObject, getObject, getRef, getRef, getUnicodeStream, getUnicodeStream, updateArray, updateArray, updateBigDecimal, updateBigDecimal, updateRef, updateRef
 

Field Detail

FIRST

protected static final int FIRST
See Also:
Constant Field Values

NEXT

protected static final int NEXT
See Also:
Constant Field Values

LAST

protected static final int LAST
See Also:
Constant Field Values

PREVIOUS

protected static final int PREVIOUS
See Also:
Constant Field Values

BEFOREFIRST

protected static final int BEFOREFIRST
See Also:
Constant Field Values

AFTERLAST

protected static final int AFTERLAST
See Also:
Constant Field Values

ABSOLUTE

protected static final int ABSOLUTE
See Also:
Constant Field Values

RELATIVE

protected static final int RELATIVE
See Also:
Constant Field Values

currentRow

protected ExecRow currentRow

rowData

private DataValueDescriptor[] rowData

wasNull

protected boolean wasNull

isClosed

protected boolean isClosed

currentStream

private java.lang.Object currentStream

theResults

protected ResultSet theResults

forMetaData

private boolean forMetaData

rMetaData

private java.sql.ResultSetMetaData rMetaData

topWarning

private java.sql.SQLWarning topWarning

finalizeActivation

Activation finalizeActivation

order

final int order

resultDescription

private final ResultDescription resultDescription

maxRows

private int maxRows

maxFieldSize

private final int maxFieldSize

NumberofFetchedRows

private int NumberofFetchedRows

stmt

protected final EmbedStatement stmt

owningStmt

private EmbedStatement owningStmt

isAtomic

protected final boolean isAtomic

concurrencyOfThisResultSet

protected final int concurrencyOfThisResultSet

copyOfDatabaseRow

private DataValueDescriptor[] copyOfDatabaseRow

columnGotUpdated

private boolean[] columnGotUpdated

currentRowHasBeenUpdated

private boolean currentRowHasBeenUpdated

fetchDirection

private int fetchDirection

fetchSize

private int fetchSize

CLOSE

protected static final boolean CLOSE
See Also:
Constant Field Values

NOCLOSE

protected static final boolean NOCLOSE
See Also:
Constant Field Values

localConn

protected EmbedConnection localConn

factory

protected final InternalDriver factory
Factory for JDBC objects to be created.

Constructor Detail

EmbedResultSet

public EmbedResultSet(EmbedConnection conn,
                      ResultSet resultsToWrap,
                      boolean forMetaData,
                      EmbedStatement stmt,
                      boolean isAtomic)
               throws java.sql.SQLException
This class provides the glue between the Cloudscape resultset and the JDBC resultset, mapping calls-to-calls.

Method Detail

finalize

protected void finalize()
                 throws java.lang.Throwable
JDBC states that a ResultSet is closed when garbage collected. We simply mark the activation as unused. Some later use of the connection will clean everything up.

Throws:
java.lang.Throwable - Allows any exception to be thrown during finalize

checkOnRow

protected final DataValueDescriptor[] checkOnRow()
                                          throws java.sql.SQLException
Throws:
java.sql.SQLException

getColumnType

final int getColumnType(int columnIndex)
                 throws java.sql.SQLException
Check the column is in range *and* return the JDBC type of the column.

Throws:
java.sql.SQLException - ResultSet is not on a row or columnIndex is out of range.

next

public boolean next()
             throws java.sql.SQLException
A ResultSet is initially positioned before its first row; the first call to next makes the first row the current row; the second call makes the second row the current row, etc.

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

Specified by:
next in interface java.sql.ResultSet
Returns:
true if the new current row is valid; false if there are no more rows
Throws:
java.sql.SQLException - thrown on failure.

movePosition

protected boolean movePosition(int position,
                               java.lang.String positionText)
                        throws java.sql.SQLException
Throws:
java.sql.SQLException

movePosition

protected boolean movePosition(int position,
                               int row,
                               java.lang.String positionText)
                        throws java.sql.SQLException
Throws:
java.sql.SQLException

close

public void close()
           throws java.sql.SQLException
In some cases, it is desirable to immediately release a ResultSet's database and JDBC resources instead of waiting for this to happen when it is automatically closed; the close method provides this immediate release.

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

Specified by:
close in interface java.sql.ResultSet
Throws:
java.sql.SQLException - thrown on failure.

wasNull

public final boolean wasNull()
                      throws java.sql.SQLException
A column may have the value of SQL NULL; wasNull reports whether the last column read had this special value. Note that you must first call getXXX on a column to try to read its value and then call wasNull() to find if the value was the SQL NULL.

we take the least exception approach and simply return false if no column has been read yet.

Specified by:
wasNull in interface java.sql.ResultSet
Returns:
true if last column read was SQL NULL
Throws:
java.sql.SQLException - Thrown if this ResultSet is closed

getString

public final java.lang.String getString(int columnIndex)
                                 throws java.sql.SQLException
Get the value of a column in the current row as a Java String.

Specified by:
getString in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - thrown on failure.

getBoolean

public final boolean getBoolean(int columnIndex)
                         throws java.sql.SQLException
Get the value of a column in the current row as a Java boolean.

Specified by:
getBoolean in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is false
Throws:
java.sql.SQLException - thrown on failure.

getByte

public final byte getByte(int columnIndex)
                   throws java.sql.SQLException
Get the value of a column in the current row as a Java byte.

Specified by:
getByte in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getShort

public final short getShort(int columnIndex)
                     throws java.sql.SQLException
Get the value of a column in the current row as a Java short.

Specified by:
getShort in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getInt

public final int getInt(int columnIndex)
                 throws java.sql.SQLException
Get the value of a column in the current row as a Java int.

Specified by:
getInt in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getLong

public final long getLong(int columnIndex)
                   throws java.sql.SQLException
Get the value of a column in the current row as a Java long.

Specified by:
getLong in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getFloat

public final float getFloat(int columnIndex)
                     throws java.sql.SQLException
Get the value of a column in the current row as a Java float.

Specified by:
getFloat in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getDouble

public final double getDouble(int columnIndex)
                       throws java.sql.SQLException
Get the value of a column in the current row as a Java double.

Specified by:
getDouble in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getBytes

public final byte[] getBytes(int columnIndex)
                      throws java.sql.SQLException
Get the value of a column in the current row as a Java byte array. The bytes represent the raw values returned by the driver.

Specified by:
getBytes in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - thrown on failure.

getDate

public final java.sql.Date getDate(int columnIndex)
                            throws java.sql.SQLException
Get the value of a column in the current row as a java.sql.Date object.

Specified by:
getDate in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - thrown on failure.

getTime

public final java.sql.Time getTime(int columnIndex)
                            throws java.sql.SQLException
Get the value of a column in the current row as a java.sql.Time object.

Specified by:
getTime in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - thrown on failure.

getTimestamp

public final java.sql.Timestamp getTimestamp(int columnIndex)
                                      throws java.sql.SQLException
Get the value of a column in the current row as a java.sql.Timestamp object.

Specified by:
getTimestamp in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - thrown on failure.

getDate

public java.sql.Date getDate(int columnIndex,
                             java.util.Calendar cal)
                      throws java.sql.SQLException
JDBC 2.0 Get the value of a column in the current row as a java.sql.Date object. Use the calendar to construct an appropriate millisecond value for the Date, if the underlying database doesn't store timezone information.

Specified by:
getDate in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
cal - the calendar 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 a database-access error occurs.

getDate

public java.sql.Date getDate(java.lang.String columnName,
                             java.util.Calendar cal)
                      throws java.sql.SQLException
JDBC 2.0 Get the value of a column in the current row as a java.sql.Date object. Use the calendar to construct an appropriate millisecond value for the Date, if the underlying database doesn't store timezone information.

Specified by:
getDate in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
cal - the calendar 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 a database-access error occurs.

getTime

public java.sql.Time getTime(int columnIndex,
                             java.util.Calendar cal)
                      throws java.sql.SQLException
JDBC 2.0 Get the value of a column in the current row as a java.sql.Time object. Use the calendar to construct an appropriate millisecond value for the Time, if the underlying database doesn't store timezone information.

Specified by:
getTime in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
cal - the calendar to use in constructing the time
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - if a database-access error occurs.

getTime

public java.sql.Time getTime(java.lang.String columnName,
                             java.util.Calendar cal)
                      throws java.sql.SQLException
JDBC 2.0 Get the value of a column in the current row as a java.sql.Time object. Use the calendar to construct an appropriate millisecond value for the Time, if the underlying database doesn't store timezone information.

Specified by:
getTime in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
cal - the calendar to use in constructing the time
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - if a database-access error occurs.

getTimestamp

public java.sql.Timestamp getTimestamp(java.lang.String columnName,
                                       java.util.Calendar cal)
                                throws java.sql.SQLException
JDBC 2.0 Get the value of a column in the current row as a java.sql.Timestamp object. Use the calendar to construct an appropriate millisecond value for the Timestamp, if the underlying database doesn't store timezone information.

Specified by:
getTimestamp in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
cal - the calendar to use in constructing the timestamp
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - if a database-access error occurs.

getTimestamp

public java.sql.Timestamp getTimestamp(int columnIndex,
                                       java.util.Calendar cal)
                                throws java.sql.SQLException
JDBC 2.0 Get the value of a column in the current row as a java.sql.Timestamp object. Use the calendar to construct an appropriate millisecond value for the Timestamp, if the underlying database doesn't store timezone information.

Specified by:
getTimestamp in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
cal - the calendar to use in constructing the timestamp
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - if a database-access error occurs.

getCharacterStream

public final java.io.Reader getCharacterStream(int columnIndex)
                                        throws java.sql.SQLException
JDBC 2.0

Get the value of a column in the current row as a java.io.Reader.

Specified by:
getCharacterStream in interface java.sql.ResultSet
Throws:
java.sql.SQLException - database error.

getAsciiStream

public final java.io.InputStream getAsciiStream(int columnIndex)
                                         throws java.sql.SQLException
Pushes a converter on top of getCharacterStream().

Specified by:
getAsciiStream in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
a Java input stream that delivers the database column value as a stream of one byte ASCII characters. If the value is SQL NULL then the result is null.
Throws:
java.sql.SQLException - thrown on failure.

getBinaryStream

public final java.io.InputStream getBinaryStream(int columnIndex)
                                          throws java.sql.SQLException
Get the column as an InputStream. If the column is already of type InputStream then just return it, otherwise convert the column to a set of bytes and create a stream out of the bytes.

Specified by:
getBinaryStream in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Returns:
a Java input stream that delivers the database column value as a stream of uninterpreted bytes. If the value is SQL NULL then the result is null.
Throws:
java.sql.SQLException - thrown on failure.

getString

public final java.lang.String getString(java.lang.String columnName)
                                 throws java.sql.SQLException
Get the value of a column in the current row as a Java String.

Specified by:
getString in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - thrown on failure.

getBoolean

public final boolean getBoolean(java.lang.String columnName)
                         throws java.sql.SQLException
Get the value of a column in the current row as a Java boolean.

Specified by:
getBoolean in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is false
Throws:
java.sql.SQLException - thrown on failure.

getByte

public final byte getByte(java.lang.String columnName)
                   throws java.sql.SQLException
Get the value of a column in the current row as a Java byte.

Specified by:
getByte in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getShort

public final short getShort(java.lang.String columnName)
                     throws java.sql.SQLException
Get the value of a column in the current row as a Java short.

Specified by:
getShort in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getInt

public final int getInt(java.lang.String columnName)
                 throws java.sql.SQLException
Get the value of a column in the current row as a Java int.

Specified by:
getInt in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getLong

public final long getLong(java.lang.String columnName)
                   throws java.sql.SQLException
Get the value of a column in the current row as a Java long.

Specified by:
getLong in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getFloat

public final float getFloat(java.lang.String columnName)
                     throws java.sql.SQLException
Get the value of a column in the current row as a Java float.

Specified by:
getFloat in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getDouble

public final double getDouble(java.lang.String columnName)
                       throws java.sql.SQLException
Get the value of a column in the current row as a Java double.

Specified by:
getDouble in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is 0
Throws:
java.sql.SQLException - thrown on failure.

getBytes

public final byte[] getBytes(java.lang.String columnName)
                      throws java.sql.SQLException
Get the value of a column in the current row as a Java byte array. The bytes represent the raw values returned by the driver.

Specified by:
getBytes in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - thrown on failure.

getDate

public final java.sql.Date getDate(java.lang.String columnName)
                            throws java.sql.SQLException
Get the value of a column in the current row as a java.sql.Date object.

Specified by:
getDate in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - thrown on failure.

getTime

public final java.sql.Time getTime(java.lang.String columnName)
                            throws java.sql.SQLException
Get the value of a column in the current row as a java.sql.Time object.

Specified by:
getTime in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - thrown on failure.

getTimestamp

public final java.sql.Timestamp getTimestamp(java.lang.String columnName)
                                      throws java.sql.SQLException
Get the value of a column in the current row as a java.sql.Timestamp object.

Specified by:
getTimestamp in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
the column value; if the value is SQL NULL, the result is null
Throws:
java.sql.SQLException - thrown on failure.

getCharacterStream

public final java.io.Reader getCharacterStream(java.lang.String columnName)
                                        throws java.sql.SQLException
JDBC 2.0

Get the value of a column in the current row as a java.io.Reader.

Specified by:
getCharacterStream in interface java.sql.ResultSet
Throws:
java.sql.SQLException - Feature not implemented for now.

getAsciiStream

public final java.io.InputStream getAsciiStream(java.lang.String columnName)
                                         throws java.sql.SQLException
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.

Specified by:
getAsciiStream in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
a Java input stream that delivers the database column value as a stream of one byte ASCII characters. If the value is SQL NULL then the result is null.
Throws:
java.sql.SQLException - thrown on failure.

getBinaryStream

public final java.io.InputStream getBinaryStream(java.lang.String columnName)
                                          throws java.sql.SQLException
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.

Specified by:
getBinaryStream in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
a Java input stream that delivers the database column value as a stream of uninterpreted bytes. If the value is SQL NULL then the result is null.
Throws:
java.sql.SQLException - thrown on failure.

getURL

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

Specified by:
getURL in interface java.sql.ResultSet
Parameters:
columnIndex - - the first column is 1, the second is 2
Returns:
the column value as a java.net.URL object, if the value is SQL NULL, the value returned is null in the Java programming language
Throws:
java.sql.SQLException - Feature not implemented for now.

getURL

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

Specified by:
getURL in interface java.sql.ResultSet
Parameters:
columnName - - the SQL name of the column
Returns:
the column value as a java.net.URL object, if the value is SQL NULL, the value returned is null in the Java programming language
Throws:
java.sql.SQLException - Feature not implemented for now.

getWarnings

public final java.sql.SQLWarning getWarnings()
                                      throws java.sql.SQLException

The first warning reported by calls on this ResultSet is returned. Subsequent ResultSet 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
Throws:
java.sql.SQLException - Thrown if this ResultSet is closed

clearWarnings

public final void clearWarnings()
                         throws java.sql.SQLException
After this call getWarnings returns null until a new warning is reported for this ResultSet.

Specified by:
clearWarnings in interface java.sql.ResultSet
Throws:
java.sql.SQLException - Thrown if this ResultSet is closed

getCursorName

public final java.lang.String getCursorName()
                                     throws java.sql.SQLException
Get the name of the SQL cursor used by this ResultSet.

In SQL, a result table is retrieved through a cursor that is named. The current row of a result can be updated or deleted using a positioned update/delete statement that references the cursor name.

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

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

Specified by:
getCursorName in interface java.sql.ResultSet
Returns:
the ResultSet's SQL cursor name
Throws:
java.sql.SQLException - thrown on failure.

getMetaData

public java.sql.ResultSetMetaData getMetaData()
                                       throws java.sql.SQLException
The number, types and properties of a ResultSet's columns are provided by the getMetaData method.

Specified by:
getMetaData in interface java.sql.ResultSet
Returns:
the description of a ResultSet's columns
Throws:
java.sql.SQLException - thrown on failure.

getObject

public final java.lang.Object getObject(int columnIndex)
                                 throws java.sql.SQLException

Get the value of a column in the current row as a Java object.

This method will return the value of the given column as a Java object. The type of the Java object will be the default Java Object type corresponding to the column's SQL type, following the mapping specified in the JDBC spec.

This method may also be used to read datatabase specific abstract data types. JDBC 2.0 New behavior for getObject(). The behavior of method getObject() is extended to materialize data of SQL user-defined types. When the column @columnIndex is a structured or distinct value, the behavior of this method is as if it were a call to: 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, ...
Returns:
A java.lang.Object holding the column value.
Throws:
java.sql.SQLException - thrown on failure.

getObject

public final java.lang.Object getObject(java.lang.String columnName)
                                 throws java.sql.SQLException

Get the value of a column in the current row as a Java object.

This method will return the value of the given column as a Java object. The type of the Java object will be the default Java Object type corresponding to the column's SQL type, following the mapping specified in the JDBC spec.

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

Specified by:
getObject in interface java.sql.ResultSet
Parameters:
columnName - is the SQL name of the column
Returns:
A java.lang.Object holding the column value.
Throws:
java.sql.SQLException - thrown on failure.

findColumn

public final int findColumn(java.lang.String columnName)
                     throws java.sql.SQLException
Map a Resultset column name to a ResultSet column index.

Specified by:
findColumn in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
Returns:
the column index
Throws:
java.sql.SQLException - thrown on failure.

getStatement

public final java.sql.Statement getStatement()
JDBC 2.0 Return the Statement that produced the ResultSet.

Specified by:
getStatement in interface java.sql.ResultSet
Returns:
the Statment that produced the result set, or null if the result was produced some other way.

isBeforeFirst

public boolean isBeforeFirst()
                      throws java.sql.SQLException
JDBC 2.0

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

Specified by:
isBeforeFirst in interface java.sql.ResultSet
Returns:
true if before the first row, false otherwise. Returns false when the result set contains no rows.
Throws:
java.sql.SQLException - Thrown on error.

isAfterLast

public boolean isAfterLast()
                    throws java.sql.SQLException
JDBC 2.0

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

Specified by:
isAfterLast in interface java.sql.ResultSet
Returns:
true if after the last row, false otherwise. Returns false when the result set contains no rows.
Throws:
java.sql.SQLException - Thrown on error.

isFirst

public boolean isFirst()
                throws java.sql.SQLException
JDBC 2.0

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

Specified by:
isFirst in interface java.sql.ResultSet
Returns:
true if on the first row, false otherwise.
Throws:
java.sql.SQLException - Thrown on error.

isLast

public boolean isLast()
               throws java.sql.SQLException
JDBC 2.0

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

Specified by:
isLast in interface java.sql.ResultSet
Returns:
true if on the last row, false otherwise.
Throws:
java.sql.SQLException - Thrown on error.

beforeFirst

public void beforeFirst()
                 throws java.sql.SQLException
JDBC 2.0

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

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

afterLast

public void afterLast()
               throws java.sql.SQLException
JDBC 2.0

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

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

first

public boolean first()
              throws java.sql.SQLException
JDBC 2.0

Moves to the first row in the result set.

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

last

public boolean last()
             throws java.sql.SQLException
JDBC 2.0

Moves to the last row in the result set.

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

getRow

public int getRow()
           throws java.sql.SQLException
JDBC 2.0

Determine the current row number. The first row is number 1, the second number 2, etc.

Specified by:
getRow in interface java.sql.ResultSet
Returns:
the current row number, else return 0 if there is no current row
Throws:
java.sql.SQLException - if a database-access error occurs.

absolute

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

Move to an absolute row number in the result set.

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

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

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

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

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

relative

public boolean relative(int row)
                 throws java.sql.SQLException
JDBC 2.0

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

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

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

previous

public boolean previous()
                 throws java.sql.SQLException
JDBC 2.0

Moves to the previous row in the result set.

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

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

setFetchDirection

public void setFetchDirection(int direction)
                       throws java.sql.SQLException
JDBC 2.0 Give a hint as to the direction in which the rows in this result set will be processed. The initial value is determined by the statement that produced the result set. The fetch direction may be changed at any time.

Specified by:
setFetchDirection in interface java.sql.ResultSet
Throws:
java.sql.SQLException - if a database-access error occurs, or the result set type is TYPE_FORWARD_ONLY and direction is not FETCH_FORWARD.

getFetchDirection

public int getFetchDirection()
                      throws java.sql.SQLException
JDBC 2.0 Return the fetch direction for this result set.

Specified by:
getFetchDirection in interface java.sql.ResultSet
Throws:
java.sql.SQLException - if a database-access error occurs

setFetchSize

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

Specified by:
setFetchSize in interface java.sql.ResultSet
Parameters:
rows - the number of rows to fetch
Throws:
java.sql.SQLException - if a database-access error occurs, or the condition 0 <= rows <= this.getMaxRows() is not satisfied.

getFetchSize

public int getFetchSize()
                 throws java.sql.SQLException
JDBC 2.0 Return the fetch size for this result set.

Specified by:
getFetchSize in interface java.sql.ResultSet
Throws:
java.sql.SQLException - if a database-access error occurs

getType

public int getType()
            throws java.sql.SQLException
JDBC 2.0 Return the type of this result set. The type is determined based on the statement that created the result set.

Specified by:
getType in interface java.sql.ResultSet
Returns:
TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, or TYPE_SCROLL_SENSITIVE
Throws:
java.sql.SQLException - if a database-access error occurs

getConcurrency

public int getConcurrency()
                   throws java.sql.SQLException
JDBC 2.0 Return the concurrency of this result set. The concurrency is determined as follows If Statement object has CONCUR_READ_ONLY concurrency, then ResultSet object will also have the CONCUR_READ_ONLY concurrency. But if Statement object has CONCUR_UPDATABLE concurrency, then the concurrency of ResultSet object depends on whether the underlying language resultset is updatable or not. If the language resultset is updatable, then JDBC ResultSet object will also have the CONCUR_UPDATABLE concurrency. If lanugage resultset is not updatable, then JDBC ResultSet object concurrency will be set to CONCUR_READ_ONLY.

Specified by:
getConcurrency in interface java.sql.ResultSet
Returns:
the concurrency type, CONCUR_READ_ONLY, etc.
Throws:
java.sql.SQLException - if a database-access error occurs

rowUpdated

public boolean rowUpdated()
                   throws java.sql.SQLException
JDBC 2.0 Determine if the current row has been updated. The value returned depends on whether or not the result set can detect updates.

Specified by:
rowUpdated in interface java.sql.ResultSet
Returns:
true if the row has been visibly updated by the owner or another, and updates are detected
Throws:
java.sql.SQLException - if a database-access error occurs
See Also:
EmbedDatabaseMetaData.updatesAreDetected(int)

rowInserted

public boolean rowInserted()
                    throws java.sql.SQLException
JDBC 2.0 Determine if the current row has been inserted. The value returned depends on whether or not the result set can detect visible inserts.

Specified by:
rowInserted in interface java.sql.ResultSet
Returns:
true if inserted and inserts are detected
Throws:
java.sql.SQLException - if a database-access error occurs
See Also:
EmbedDatabaseMetaData.insertsAreDetected(int)

rowDeleted

public boolean rowDeleted()
                   throws java.sql.SQLException
JDBC 2.0 Determine if this row has been deleted. A deleted row may leave a visible "hole" in a result set. This method can be used to detect holes in a result set. The value returned depends on whether or not the result set can detect deletions.

Specified by:
rowDeleted in interface java.sql.ResultSet
Returns:
true if deleted and deletes are detected
Throws:
java.sql.SQLException - if a database-access error occurs
See Also:
EmbedDatabaseMetaData.deletesAreDetected(int)

checksBeforeUpdateXXX

protected void checksBeforeUpdateXXX(java.lang.String methodName,
                                     int columnIndex)
                              throws java.sql.SQLException
Throws:
java.sql.SQLException

checksBeforeUpdateOrDelete

protected void checksBeforeUpdateOrDelete(java.lang.String methodName,
                                          int columnIndex)
                                   throws java.sql.SQLException
Throws:
java.sql.SQLException

getDVDforColumnToBeUpdated

protected DataValueDescriptor getDVDforColumnToBeUpdated(int columnIndex,
                                                         java.lang.String updateMethodName)
                                                  throws StandardException,
                                                         java.sql.SQLException
Throws:
StandardException
java.sql.SQLException

updateNull

public void updateNull(int columnIndex)
                throws java.sql.SQLException
JDBC 2.0 Give a nullable column a null value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateNull in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
Throws:
java.sql.SQLException - if a database-access error occurs

updateBoolean

public void updateBoolean(int columnIndex,
                          boolean x)
                   throws java.sql.SQLException
JDBC 2.0 Update a column with a boolean value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateBoolean in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateByte

public void updateByte(int columnIndex,
                       byte x)
                throws java.sql.SQLException
JDBC 2.0 Update a column with a byte value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateByte in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateShort

public void updateShort(int columnIndex,
                        short x)
                 throws java.sql.SQLException
JDBC 2.0 Update a column with a short value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateShort in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateInt

public void updateInt(int columnIndex,
                      int x)
               throws java.sql.SQLException
JDBC 2.0 Update a column with an integer value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateInt in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateLong

public void updateLong(int columnIndex,
                       long x)
                throws java.sql.SQLException
JDBC 2.0 Update a column with a long value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateLong in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateFloat

public void updateFloat(int columnIndex,
                        float x)
                 throws java.sql.SQLException
JDBC 2.0 Update a column with a float value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateFloat in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateDouble

public void updateDouble(int columnIndex,
                         double x)
                  throws java.sql.SQLException
JDBC 2.0 Update a column with a Double value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateDouble in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateString

public void updateString(int columnIndex,
                         java.lang.String x)
                  throws java.sql.SQLException
JDBC 2.0 Update a column with a String value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateString in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateBytes

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

Specified by:
updateBytes in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateDate

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

Specified by:
updateDate in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateTime

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

Specified by:
updateTime in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateTimestamp

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

Specified by:
updateTimestamp in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateAsciiStream

public void updateAsciiStream(int columnIndex,
                              java.io.InputStream x,
                              int length)
                       throws java.sql.SQLException
JDBC 2.0 Update a column with an ascii stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateAsciiStream in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
length - the length of the stream
Throws:
java.sql.SQLException - if a database-access error occurs

updateBinaryStream

public void updateBinaryStream(int columnIndex,
                               java.io.InputStream x,
                               int length)
                        throws java.sql.SQLException
JDBC 2.0 Update a column with a binary stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateBinaryStream in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
length - the length of the stream
Throws:
java.sql.SQLException - if a database-access error occurs

updateBinaryStreamInternal

protected void updateBinaryStreamInternal(int columnIndex,
                                          java.io.InputStream x,
                                          int length,
                                          java.lang.String updateMethodName)
                                   throws java.sql.SQLException
Throws:
java.sql.SQLException

updateCharacterStream

public void updateCharacterStream(int columnIndex,
                                  java.io.Reader x,
                                  int length)
                           throws java.sql.SQLException
JDBC 2.0 Update a column with a character stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateCharacterStream in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
length - the length of the stream
Throws:
java.sql.SQLException - if a database-access error occurs

updateCharacterStreamInternal

protected void updateCharacterStreamInternal(int columnIndex,
                                             java.io.Reader reader,
                                             int length,
                                             java.lang.String updateMethodName)
                                      throws java.sql.SQLException
Throws:
java.sql.SQLException

updateObject

public void updateObject(int columnIndex,
                         java.lang.Object x,
                         int scale)
                  throws java.sql.SQLException
JDBC 2.0 Update a column with an Object value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateObject in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
scale - For java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types this is the number of digits after the decimal. For all other types this value will be ignored.
Throws:
java.sql.SQLException - if a database-access error occurs

updateObject

public void updateObject(int columnIndex,
                         java.lang.Object x)
                  throws java.sql.SQLException
JDBC 2.0 Update a column with an Object value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateObject in interface java.sql.ResultSet
Parameters:
columnIndex - the first column is 1, the second is 2, ...
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateNull

public void updateNull(java.lang.String columnName)
                throws java.sql.SQLException
JDBC 2.0 Update a column with a null value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateNull in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
Throws:
java.sql.SQLException - if a database-access error occurs

updateBoolean

public void updateBoolean(java.lang.String columnName,
                          boolean x)
                   throws java.sql.SQLException
JDBC 2.0 Update a column with a boolean value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateBoolean in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateByte

public void updateByte(java.lang.String columnName,
                       byte x)
                throws java.sql.SQLException
JDBC 2.0 Update a column with a byte value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateByte in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateShort

public void updateShort(java.lang.String columnName,
                        short x)
                 throws java.sql.SQLException
JDBC 2.0 Update a column with a short value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateShort in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateInt

public void updateInt(java.lang.String columnName,
                      int x)
               throws java.sql.SQLException
JDBC 2.0 Update a column with an integer value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateInt in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateLong

public void updateLong(java.lang.String columnName,
                       long x)
                throws java.sql.SQLException
JDBC 2.0 Update a column with a long value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateLong in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateFloat

public void updateFloat(java.lang.String columnName,
                        float x)
                 throws java.sql.SQLException
JDBC 2.0 Update a column with a float value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateFloat in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateDouble

public void updateDouble(java.lang.String columnName,
                         double x)
                  throws java.sql.SQLException
JDBC 2.0 Update a column with a double value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateDouble in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateString

public void updateString(java.lang.String columnName,
                         java.lang.String x)
                  throws java.sql.SQLException
JDBC 2.0 Update a column with a String value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateString in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateBytes

public void updateBytes(java.lang.String columnName,
                        byte[] x)
                 throws java.sql.SQLException
JDBC 2.0 Update a column with a byte array value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateBytes in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateDate

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

Specified by:
updateDate in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateTime

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

Specified by:
updateTime in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateTimestamp

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

Specified by:
updateTimestamp in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

updateAsciiStream

public void updateAsciiStream(java.lang.String columnName,
                              java.io.InputStream x,
                              int length)
                       throws java.sql.SQLException
JDBC 2.0 Update a column with an ascii stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateAsciiStream in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
length - of the stream
Throws:
java.sql.SQLException - if a database-access error occurs

updateBinaryStream

public void updateBinaryStream(java.lang.String columnName,
                               java.io.InputStream x,
                               int length)
                        throws java.sql.SQLException
JDBC 2.0 Update a column with a binary stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateBinaryStream in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
length - of the stream
Throws:
java.sql.SQLException - if a database-access error occurs

updateCharacterStream

public void updateCharacterStream(java.lang.String columnName,
                                  java.io.Reader reader,
                                  int length)
                           throws java.sql.SQLException
JDBC 2.0 Update a column with a character stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateCharacterStream in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
length - of the stream
Throws:
java.sql.SQLException - if a database-access error occurs

updateObject

public void updateObject(java.lang.String columnName,
                         java.lang.Object x,
                         int scale)
                  throws java.sql.SQLException
JDBC 2.0 Update a column with an Object value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateObject in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
scale - For java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types this is the number of digits after the decimal. For all other types this value will be ignored.
Throws:
java.sql.SQLException - if a database-access error occurs

updateObject

public void updateObject(java.lang.String columnName,
                         java.lang.Object x)
                  throws java.sql.SQLException
JDBC 2.0 Update a column with an Object value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.

Specified by:
updateObject in interface java.sql.ResultSet
Parameters:
columnName - the name of the column
x - the new column value
Throws:
java.sql.SQLException - if a database-access error occurs

insertRow

public void insertRow()
               throws java.sql.SQLException
JDBC 2.0 Insert the contents of the insert row into the result set and the database. Must be on the insert row when this method is called.

Specified by:
insertRow in interface java.sql.ResultSet
Throws:
java.sql.SQLException - if a database-access error occurs, if called when not on the insert row, or if all non-nullable columns in the insert row have not been given a value

updateRow

public void updateRow()
               throws java.sql.SQLException
JDBC 2.0 Update the underlying database with the new contents of the current row. Cannot be called when on the insert row.

Specified by:
updateRow in interface java.sql.ResultSet
Throws:
java.sql.SQLException - if a database-access error occurs, or if called when on the insert row

deleteRow

public void deleteRow()
               throws java.sql.SQLException
JDBC 2.0 Delete the current row from the result set and the underlying database. Cannot be called when on the insert row.

Specified by:
deleteRow in interface java.sql.ResultSet
Throws:
java.sql.SQLException - if a database-access error occurs, or if called when on the insert row.

getFullBaseTableName

private java.lang.String getFullBaseTableName(ExecCursorTableReference targetTable)

refreshRow

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

Specified by:
refreshRow in interface java.sql.ResultSet
Throws:
java.sql.SQLException - if a database-access error occurs, or if called when on the insert row.

cancelRowUpdates

public void cancelRowUpdates()
                      throws java.sql.SQLException
JDBC 2.0 The cancelRowUpdates() method may be called after calling an updateXXX() method(s) and before calling updateRow() to rollback the updates made to a row. If no updates have been made or updateRow() has already been called, then this method has no effect.

Specified by:
cancelRowUpdates in interface java.sql.ResultSet
Throws:
java.sql.SQLException - if a database-access error occurs, or if called when on the insert row.

moveToInsertRow

public void moveToInsertRow()
                     throws java.sql.SQLException
JDBC 2.0 Move to the insert row. The current cursor position is remembered while the cursor is positioned on the insert row. The insert row is a special row associated with an updatable result set. It is essentially a buffer where a new row may be constructed by calling the updateXXX() methods prior to inserting the row into the result set. Only the updateXXX(), getXXX(), and insertRow() methods may be called when the cursor is on the insert row. All of the columns in a result set must be given a value each time this method is called before calling insertRow(). UpdateXXX()must be called before getXXX() on a column.

Specified by:
moveToInsertRow in interface java.sql.ResultSet
Throws:
java.sql.SQLException - if a database-access error occurs, or the result set is not updatable

moveToCurrentRow

public void moveToCurrentRow()
                      throws java.sql.SQLException
JDBC 2.0 Move the cursor to the remembered cursor position, usually the current row. Has no effect unless the cursor is on the insert row.

Specified by:
moveToCurrentRow in interface java.sql.ResultSet
Throws:
java.sql.SQLException - if a database-access error occurs, or the result set is not updatable

getBlob

public java.sql.Blob getBlob(int columnIndex)
                      throws java.sql.SQLException
JDBC 2.0 Get a BLOB column.

Specified by:
getBlob in interface java.sql.ResultSet
Returns:
an object representing a BLOB
Throws:
java.sql.SQLException

getClob

public final java.sql.Clob getClob(int columnIndex)
                            throws java.sql.SQLException
JDBC 2.0 Get a CLOB column.

Specified by:
getClob in interface java.sql.ResultSet
Returns:
an object representing a CLOB
Throws:
java.sql.SQLException

getBlob

public final java.sql.Blob getBlob(java.lang.String columnName)
                            throws java.sql.SQLException
JDBC 2.0 Get a BLOB column.

Specified by:
getBlob in interface java.sql.ResultSet
Returns:
an object representing a BLOB
Throws:
java.sql.SQLException

getClob

public final java.sql.Clob getClob(java.lang.String columnName)
                            throws java.sql.SQLException
JDBC 2.0 Get a CLOB column.

Specified by:
getClob in interface java.sql.ResultSet
Returns:
an object representing a CLOB
Throws:
java.sql.SQLException - Feature not implemented for now.

updateBlob

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

Specified by:
updateBlob in interface java.sql.ResultSet
Parameters:
columnIndex - - the first column is 1, the second is 2
x - - the new column value
Throws:
java.sql.SQLException - Feature not implemented for now.

updateBlob

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

Specified by:
updateBlob in interface java.sql.ResultSet
Parameters:
columnName - - the SQL name of the column
x - - the new column value
Throws:
java.sql.SQLException - Feature not implemented for now.

updateClob

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

Specified by:
updateClob in interface java.sql.ResultSet
Parameters:
columnIndex - - the first column is 1, the second is 2
x - - the new column value
Throws:
java.sql.SQLException - Feature not implemented for now.

updateClob

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

Specified by:
updateClob in interface java.sql.ResultSet
Parameters:
columnName - - the SQL name of the column
x - - the new column value
Throws:
java.sql.SQLException - Feature not implemented for now.

findColumnName

protected int findColumnName(java.lang.String columnName)
                      throws java.sql.SQLException
Map a Resultset column name to a ResultSet column index.

Parameters:
columnName - the name of the column
Returns:
the column index
Throws:
java.sql.SQLException - thrown on failure.

newEmbedResultSetMetaData

protected EmbedResultSetMetaData newEmbedResultSetMetaData(ResultDescription resultDesc)

closeCurrentStream

protected final void closeCurrentStream()
Documented behaviour for streams is that they are implicitly closed on the next get*() method call.


checkIfClosed

protected final void checkIfClosed(java.lang.String operation)
                            throws java.sql.SQLException
Throw an exception if this ResultSet is closed.

Parameters:
operation - The operation the caller is trying to perform
Throws:
java.sql.SQLException - Thrown if this ResultSet is closed.

checkExecIfClosed

protected final void checkExecIfClosed(java.lang.String operation)
                                throws java.sql.SQLException
Throws:
java.sql.SQLException

getSQLText

protected java.lang.String getSQLText()
Try to see if we can fish the SQL Statement out of the local statement.

Returns:
null if we cannot figure out what SQL Statement is currently executing

getParameterValueSet

protected ParameterValueSet getParameterValueSet()
Try to see if we can fish the pvs out of the local statement.

Returns:
null if we cannot figure out what parameter value set is currently using

isMaxFieldSizeType

private static boolean isMaxFieldSizeType(int colType)

closeOnTransactionError

protected final java.sql.SQLException closeOnTransactionError(java.lang.Throwable thrownException)
                                                       throws java.sql.SQLException
Throws:
java.sql.SQLException

getColumn

protected final DataValueDescriptor getColumn(int columnIndex)
                                       throws java.sql.SQLException,
                                              StandardException
Get the column value for a getXXX() call. This method:

Throws:
java.sql.SQLException
StandardException

noStateChangeException

public static final java.sql.SQLException noStateChangeException(java.lang.Throwable thrownException)
An exception on many method calls to JDBC objects does not change the state of the transaction or statement, or even the underlying object. This method simply wraps the excecption in a SQLException. Examples are: In addition these exceptions must not call higher level objects to be closed (e.g. when executing a server side Java procedure). See bug 4397


setDynamicResultSet

void setDynamicResultSet(EmbedStatement owningStmt)
A dynamic result set was created in a procedure by a nested connection. Once the procedure returns, there is a good chance that connection is closed, so we re-attach the result set to the connection of the statement the called the procedure, which will be still open.


compareTo

public final int compareTo(java.lang.Object other)
Specified by:
compareTo in interface java.lang.Comparable

checkScrollCursor

private void checkScrollCursor(java.lang.String methodName)
                        throws java.sql.SQLException
Throws:
java.sql.SQLException

checkRowPosition

private boolean checkRowPosition(int position,
                                 java.lang.String positionText)
                          throws java.sql.SQLException
Throws:
java.sql.SQLException

isForUpdate

public final boolean isForUpdate()
* Is this result set from a select for update statement?


dataTypeConversion

protected final java.sql.SQLException dataTypeConversion(java.lang.String targetType,
                                                         int column)

dataTypeConversion

protected final java.sql.SQLException dataTypeConversion(int column,
                                                         java.lang.String targetType)

getEmbedConnection

protected final EmbedConnection getEmbedConnection()
Return a reference to the EmbedConnection


getConnectionSynchronization

protected final java.lang.Object getConnectionSynchronization()
Return an object to be used for connection synchronization.


handleException

protected final java.sql.SQLException handleException(java.lang.Throwable t)
                                               throws java.sql.SQLException
Handle any exception.

Throws:
java.sql.SQLException - thrown if can't handle
See Also:
EmbedConnection.handleException(java.lang.Throwable)

handleException

protected final java.sql.SQLException handleException(java.lang.Throwable t,
                                                      boolean close)
                                               throws java.sql.SQLException
Handle any exception.

Throws:
java.sql.SQLException - thrown if can't handle
See Also:
EmbedConnection.handleException(java.lang.Throwable)

needCommit

protected final void needCommit()
If Autocommit is on, note that a commit is needed.

See Also:
EmbedConnection.needCommit

commitIfNeeded

protected final void commitIfNeeded()
                             throws java.sql.SQLException
Perform a commit if one is needed.

Throws:
java.sql.SQLException - thrown on failure
See Also:
EmbedConnection.commitIfNeeded()

commitIfAutoCommit

protected final void commitIfAutoCommit()
                                 throws java.sql.SQLException
Perform a commit if autocommit is enabled.

Throws:
java.sql.SQLException - thrown on failure
See Also:
EmbedConnection.commitIfNeeded()

setupContextStack

protected final void setupContextStack()
                                throws java.sql.SQLException
Setup the context stack (a.k.a. context manager) for this connection.

Throws:
java.sql.SQLException - thrown on failure
See Also:
EmbedConnection.setupContextStack()

restoreContextStack

protected final void restoreContextStack()
                                  throws java.sql.SQLException
Setup the context stack (a.k.a. context manager) for this connection.

Throws:
java.sql.SQLException - thrown on failure
See Also:
EmbedConnection.restoreContextStack()

getContextManager

public ContextManager getContextManager()

getDatabase

public Database getDatabase()

getCal

protected java.util.Calendar getCal()
Get and save a unique calendar object for this JDBC object. No need to synchronize because multiple threads should not be using a single JDBC object. Even if they do there is only a small window where each would get its own Calendar for a single call.


newSQLException

protected java.sql.SQLException newSQLException(java.lang.String messageId)

newSQLException

protected java.sql.SQLException newSQLException(java.lang.String messageId,
                                                java.lang.Object arg1)

newSQLException

protected java.sql.SQLException newSQLException(java.lang.String messageId,
                                                java.lang.Object arg1,
                                                java.lang.Object arg2)

Built on Mon 2007-06-04 09:58:47+0400, from revision ???

Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.