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:
EmbedResultSet20

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

A EmbedResultSet for results from the EmbedStatement family.

Author:
ames

Field Summary
protected static int ABSOLUTE
           
protected static int AFTERLAST
           
protected static int BEFOREFIRST
           
protected  ExecRow currentRow
           
private  java.lang.Object currentStream
           
(package private)  Activation finalizeActivation
           
protected static int FIRST
           
private  boolean forMetaData
           
protected  boolean isAtomic
           
protected  boolean isClosed
           
private  int[] jdbcColumnTypes
          An array of the JDBC column types for this result set, indexed by column identifier with the first column at index 1.
protected static int LAST
           
private  int maxFieldSize
           
private  int maxRows
           
protected static int NEXT
           
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 class org.apache.derby.impl.jdbc.ConnectionChild
CLOSE, factory, localConn, NOCLOSE
 
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
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()
           
 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)
           
 int compareTo(java.lang.Object other)
           
protected  java.sql.SQLException dataTypeConversion(java.lang.String targetType, int column)
           
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.
 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.
 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.
 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.
protected  DataValueDescriptor getColumn(int columnIndex)
          Get the column value for a getXXX() call.
protected  int getColumnType(int columnIndex)
          Check the column is in range *and* return the JDBC type of the column.
 java.lang.String getCursorName()
          Get the name of the SQL cursor used by this ResultSet.
 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.
 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.
 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.
 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.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.
 java.sql.SQLWarning getWarnings()
          The first warning reported by calls on this ResultSet is returned.
 boolean isForUpdate()
          Is this result set from a select for update statement?
private static boolean isMaxFieldSizeType(int colType)
           
protected  boolean movePosition(int position, int row, java.lang.String positionText)
           
protected  boolean movePosition(int position, java.lang.String positionText)
           
protected  EmbedResultSetMetaData newEmbedResultSetMetaData(ResultDescription resultDesc)
           
 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.
(package private)  void setDynamicResultSet(EmbedStatement owningStmt)
          A dynamic result set was created in a procedure by a nested connection.
 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 org.apache.derby.impl.jdbc.ConnectionChild
commitIfAutoCommit, commitIfNeeded, getCal, getConnectionSynchronization, getContextManager, getDatabase, getEmbedConnection, handleException, handleException, needCommit, newSQLException, newSQLException, newSQLException, restoreContextStack, setupContextStack
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.sql.ResultSet
absolute, afterLast, beforeFirst, cancelRowUpdates, deleteRow, first, getArray, getArray, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBlob, getBlob, getClob, getClob, getConcurrency, getFetchDirection, getFetchSize, getObject, getObject, getRef, getRef, getRow, getStatement, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, insertRow, isAfterLast, isBeforeFirst, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateShort, updateShort, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp
 

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

jdbcColumnTypes

private final int[] jdbcColumnTypes
An array of the JDBC column types for this result set, indexed by column identifier with the first column at index 1. Position 0 in the array is not used.


maxRows

private int maxRows

maxFieldSize

private int maxFieldSize

NumberofFetchedRows

private int NumberofFetchedRows

stmt

protected final EmbedStatement stmt

owningStmt

private EmbedStatement owningStmt

isAtomic

protected final boolean isAtomic
Constructor Detail

EmbedResultSet

public 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 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

protected 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.

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.

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

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)


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