Class EmbedResultSet
- All Implemented Interfaces:
AutoCloseable, Comparable, ResultSet, Wrapper, EngineResultSet
- Direct Known Subclasses:
EmbedResultSet42
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final intprotected static final intprivate StatementStatement object the application used to create this ResultSet.protected static final intprivate boolean[]private boolean[]Indicates which columns have been fetched as a stream or as a LOB for a row.private final intprivate ExecRowThe currentRow contains the data of the current row of the resultset.private booleanprivate Objectprivate intprivate static longFor use in debugging setLargeMaxRows() method added by JDBC 4.2private intprotected static final intprivate booleanprivate final boolean(package private) booleanSet if this ResultSet is definitely closed.private booleanprotected static final intprivate final intprivate longprotected static final intprivate long(package private) final intprivate EmbedStatementThe statement that currently owns this ResultSet.protected static final intprotected static final intprivate final ResultDescription(package private) ActivationThis activation is set by EmbedStatement for a single execution Activation.private final EmbedStatementThe statement object that originally created us.private ResultSetprivate final longprivate SQLWarningprivate final ExecRowprotected booleanFields inherited from class ConnectionChild
factory, localConnFields inherited from interface 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
ConstructorsConstructorDescriptionEmbedResultSet(EmbedConnection conn, ResultSet resultsToWrap, boolean forMetaData, EmbedStatement stmt, boolean isAtomic) This class provides the glue between the Derby resultset and the JDBC resultset, mapping calls-to-calls. -
Method Summary
Modifier and TypeMethodDescriptionbooleanabsolute(int row) JDBC 2.0private voidAdds a warning to the end of the warning chain.protected voidadjustScale(int columnIndex, int scale) Adjust the scale of a type.voidJDBC 2.0voidJDBC 2.0voidJDBC 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.(package private) final voidcheckExecIfClosed(String operation) Throw an exception if this ResultSet is closed or its Connection has been closed.(package private) final voidcheckIfClosed(String operation) Throw an exception if this ResultSet is closed.private voidcheckLOBMultiCall(int columnIndex) Checks if a stream or a LOB object has already been created for the specified LOB column.private voidprotected final voidprivate booleancheckRowPosition(int position, String positionText) protected voidprivate voidchecksBeforeUpdateAsciiStream(int columnIndex) Check whether it is OK to update a column usingupdateAsciiStream().private voidchecksBeforeUpdateBinaryStream(int columnIndex) Check whether it is OK to update a column usingupdateBinaryStream().private voidchecksBeforeUpdateCharacterStream(int columnIndex) Check whether it is OK to update a column usingupdateCharacterStream().protected voidchecksBeforeUpdateOrDelete(String methodName, int columnIndex) protected voidchecksBeforeUpdateXXX(String methodName, int columnIndex) private voidcheckScrollCursor(String methodName) Checks if the result set has a scrollable cursor.private voidcheckUpdatableCursor(String operation) final voidAfter this call getWarnings returns null until a new warning is reported for this ResultSet.voidclose()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.private final voidDocumented behaviour for streams is that they are implicitly closed on the next get*() method call.(package private) final SQLExceptioncloseOnTransactionError(Throwable thrownException) final intprivate final SQLExceptiondataTypeConversion(int column, String targetType) private final SQLExceptiondataTypeConversion(String targetType, int column) voidJDBC 2.0 Delete the current row from the result set and the underlying database.final intfindColumn(String columnName) Map a Resultset column name to a ResultSet column index.protected intfindColumnName(String columnName) Map a Resultset column name to a ResultSet column index.booleanfirst()JDBC 2.0final ArraygetArray(int i) JDBC 2.0 Get an array column.final ArrayJDBC 2.0 Get an array column.final InputStreamgetAsciiStream(int columnIndex) Pushes a converter on top of getCharacterStream().final InputStreamgetAsciiStream(String columnName) A column value can be retrieved as a stream of ASCII characters and then read in chunks from the stream.final BigDecimalgetBigDecimal(int columnIndex) final BigDecimalgetBigDecimal(int columnIndex, int scale) Deprecated.final BigDecimalgetBigDecimal(String columnName) JDBC 2.0 Get the value of a column in the current row as a java.math.BigDecimal object.final BigDecimalgetBigDecimal(String columnName, int scale) Deprecated.final InputStreamgetBinaryStream(int columnIndex) Get the column as an InputStream.final InputStreamgetBinaryStream(String columnName) A column value can be retrieved as a stream of uninterpreted bytes and then read in chunks from the stream.getBlob(int columnIndex) JDBC 2.0 Get a BLOB column.final BlobJDBC 2.0 Get a BLOB column.final booleangetBoolean(int columnIndex) Get the value of a column in the current row as a Java boolean.final booleangetBoolean(String columnName) Get the value of a column in the current row as a Java boolean.final bytegetByte(int columnIndex) Get the value of a column in the current row as a Java byte.final byteGet the value of a column in the current row as a Java byte.final byte[]getBytes(int columnIndex) Get the value of a column in the current row as a Java byte array.final byte[]Get the value of a column in the current row as a Java byte array.final ReadergetCharacterStream(int columnIndex) JDBC 2.0final ReadergetCharacterStream(String columnName) JDBC 2.0final ClobgetClob(int columnIndex) JDBC 2.0 Get a CLOB column.final ClobJDBC 2.0 Get a CLOB column.protected final DataValueDescriptorgetColumn(int columnIndex) Get the column value for a getXXX() call.(package private) final StringgetColumnSQLType(int column) (package private) final intgetColumnType(int columnIndex) Check the column is in range *and* return the JDBC type of the column.intJDBC 2.0 Return the concurrency of this result set.final StringGet the name of the SQL cursor used by this ResultSet.final DategetDate(int columnIndex) Get the value of a column in the current row as a java.sql.Date object.JDBC 2.0 Get the value of a column in the current row as a java.sql.Date object.final DateGet the value of a column in the current row as a java.sql.Date object.JDBC 2.0 Get the value of a column in the current row as a java.sql.Date object.final doublegetDouble(int columnIndex) Get the value of a column in the current row as a Java double.final doubleGet the value of a column in the current row as a Java double.protected DataValueDescriptorgetDVDforColumnToBeUpdated(int columnIndex, String updateMethodName) intJDBC 2.0 Return the fetch direction for this result set.intJDBC 2.0 Return the fetch size for this result set.final floatgetFloat(int columnIndex) Get the value of a column in the current row as a Java float.final floatGet the value of a column in the current row as a Java float.private StringgetFullBaseTableName(ExecCursorTableReference targetTable) final intJDBC 4.0final intgetInt(int columnIndex) Get the value of a column in the current row as a Java int.final intGet the value of a column in the current row as a Java int.intgetLength(int columnIndex) Return the length of the designated columnIndex data value.final longgetLong(int columnIndex) Get the value of a column in the current row as a Java long.final longGet the value of a column in the current row as a Java long.private final intgetMaxColumnWidth(int columnIndex) Return the user-defined maximum size of the column.final ResultSetMetaDataThe number, types and properties of a ResultSet's columns are provided by the getMetaData method.getNCharacterStream(int columnIndex) getNCharacterStream(String columnName) getNClob(int i) getNString(int columnIndex) getNString(String columnName) final ObjectgetObject(int columnIndex) Get the value of a column in the current row as a Java object.<T> TRetrieve the column as an object of the desired type.JDBC 2.0 Returns the value of columnias a Java object.final ObjectGet the value of a column in the current row as a Java object.<T> TJDBC 2.0 Returns the value of columnias a Java object.protected ParameterValueSetTry to see if we can fish the pvs out of the local statement.final RefgetRef(int i) JDBC 2.0 Get a REF(<structured-type>) column.final RefJDBC 2.0 Get a REF(<structured-type>) column.intgetRow()JDBC 2.0getRowId(int columnIndex) final shortgetShort(int columnIndex) Get the value of a column in the current row as a Java short.final shortGet the value of a column in the current row as a Java short.protected StringTry to see if we can fish the SQL Statement out of the local statement.getSQLXML(int columnIndex) final StatementJDBC 2.0 Return the Statement that produced the ResultSet.final StringgetString(int columnIndex) Get the value of a column in the current row as a Java String.final StringGet the value of a column in the current row as a Java String.final TimegetTime(int columnIndex) Get the value of a column in the current row as a java.sql.Time object.JDBC 2.0 Get the value of a column in the current row as a java.sql.Time object.final TimeGet the value of a column in the current row as a java.sql.Time object.JDBC 2.0 Get the value of a column in the current row as a java.sql.Time object.final TimestampgetTimestamp(int columnIndex) Get the value of a column in the current row as a java.sql.Timestamp object.getTimestamp(int columnIndex, Calendar cal) JDBC 2.0 Get the value of a column in the current row as a java.sql.Timestamp object.final TimestampgetTimestamp(String columnName) Get the value of a column in the current row as a java.sql.Timestamp object.getTimestamp(String columnName, Calendar cal) JDBC 2.0 Get the value of a column in the current row as a java.sql.Timestamp object.intgetType()JDBC 2.0 Return the type of this result set.final InputStreamgetUnicodeStream(int columnIndex) Deprecated.final InputStreamgetUnicodeStream(String columnName) Deprecated.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.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.final SQLWarningThe first warning reported by calls on this ResultSet is returned.private voidInitializes the currentRowHasBeenUpdated and columnGotUpdated fieldsvoidJDBC 2.0 Insert the contents of the insert row into the result set and the database.booleanJDBC 2.0booleanJDBC 2.0final booleanisClosed()JDBC 4.0booleanisFirst()JDBC 2.0final boolean* Is this result set from a select for update statement?booleanisLast()JDBC 2.0private static booleanisMaxFieldSizeType(int colType) booleanisNull(int columnIndex) Is the designated columnIndex a null data value?booleanisWrapperFor(Class<?> interfaces) Returns false unlessinterfacesis implementedbooleanlast()JDBC 2.0private voidMark this ResultSet as closed and trigger the closing of the Statement if necessary.private SQLExceptionmismatchException(String targetTypeName, int columnIndex) protected booleanmovePosition(int position, int row, String positionText) protected booleanmovePosition(int position, String positionText) voidJDBC 2.0 Move the cursor to the remembered cursor position, usually the current row.voidJDBC 2.0 Move to the insert row.booleannext()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.(package private) static final SQLExceptionnoStateChangeException(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.booleanprevious()JDBC 2.0voidJDBC 2.0 Refresh the value of the current row with its current value in the database.booleanrelative(int row) JDBC 2.0booleanJDBC 2.0 Determine if this row has been deleted.booleanJDBC 2.0 Determine if the current row has been inserted.booleanJDBC 2.0 Determine if the current row has been updated.final voidsetApplicationStatement(Statement applicationStmt) Set the application Statement object that created this ResultSet.(package private) voidsetDynamicResultSet(EmbedStatement owningStmt) A dynamic result was created in a procedure by a nested connection.voidsetFetchDirection(int direction) JDBC 2.0 Give a hint as to the direction in which the rows in this result set will be processed.static voidsetFetchedRowBase(long newBase) Debug method used to test the setLargeMaxRows() method added by JDBC 4.2.voidsetFetchSize(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.<T> TReturnsthisif this class implements the interfacevoidupdateArray(int columnIndex, Array x) JDBC 3.0 Updates the designated column with a java.sql.Array value.voidupdateArray(String columnName, Array x) JDBC 3.0 Updates the designated column with a java.sql.Array value.voidupdateAsciiStream(int columnIndex, InputStream x) Updates the designated column with a character stream value.voidupdateAsciiStream(int columnIndex, InputStream x, int length) JDBC 2.0 Update a column with an ascii stream value.voidupdateAsciiStream(int columnIndex, InputStream x, long length) Update a column with an ascii stream value.voidupdateAsciiStream(String columnName, InputStream x) Updates the designated column with a character stream value.voidupdateAsciiStream(String columnName, InputStream x, int length) JDBC 2.0 Update a column with an ascii stream value.voidupdateAsciiStream(String columnName, InputStream x, long length) JDBC 4.0 Update a column with an ascii stream value.voidupdateBigDecimal(int columnIndex, BigDecimal x) voidupdateBigDecimal(String columnName, BigDecimal x) JDBC 2.0 Update a column with a BigDecimal value.voidupdateBinaryStream(int columnIndex, InputStream x) Updates the designated column with a binary stream value.voidupdateBinaryStream(int columnIndex, InputStream x, int length) JDBC 2.0 Update a column with a binary stream value.voidupdateBinaryStream(int columnIndex, InputStream x, long length) Update a column with a binary stream value.voidupdateBinaryStream(String columnName, InputStream x) Updates the designated column with a binary stream value.voidupdateBinaryStream(String columnName, InputStream x, int length) JDBC 2.0 Update a column with a binary stream value.voidupdateBinaryStream(String columnName, InputStream x, long length) JDBC 4.0 Update a column with a binary stream value.private voidupdateBinaryStreamInternal(int columnIndex, InputStream x, boolean lengthLess, long length, String updateMethodName) Set the given binary stream for the specified parameter.voidupdateBlob(int columnIndex, InputStream x) Updates the designated column using the given input stream.voidupdateBlob(int columnIndex, InputStream x, long length) JDBC 4.0 Updates the designated column with a java.sql.Blob value.voidupdateBlob(int columnIndex, Blob x) JDBC 3.0 Updates the designated column with a java.sql.Blob value.voidupdateBlob(String columnName, InputStream x) Updates the designated column using the given input stream.voidupdateBlob(String columnName, InputStream x, long length) JDBC 4.0 Updates the designated column with a java.sql.Blob value.voidupdateBlob(String columnName, Blob x) JDBC 3.0 Updates the designated column with a java.sql.Blob value.voidupdateBoolean(int columnIndex, boolean x) JDBC 2.0 Update a column with a boolean value.voidupdateBoolean(String columnName, boolean x) JDBC 2.0 Update a column with a boolean value.voidupdateByte(int columnIndex, byte x) JDBC 2.0 Update a column with a byte value.voidupdateByte(String columnName, byte x) JDBC 2.0 Update a column with a byte value.voidupdateBytes(int columnIndex, byte[] x) JDBC 2.0 Update a column with a byte array value.voidupdateBytes(String columnName, byte[] x) JDBC 2.0 Update a column with a byte array value.voidupdateCharacterStream(int columnIndex, Reader x) Updates the designated column with a character stream value.voidupdateCharacterStream(int columnIndex, Reader x, int length) JDBC 2.0 Update a column with a character stream value.voidupdateCharacterStream(int columnIndex, Reader x, long length) JDBC 4.0 Update a column with a character stream value.voidupdateCharacterStream(String columnName, Reader reader) Updates the designated column with a character stream value.voidupdateCharacterStream(String columnName, Reader reader, int length) JDBC 2.0 Update a column with a character stream value.voidupdateCharacterStream(String columnName, Reader reader, long length) JDBC 4.0 Update a column with a character stream value.private voidupdateCharacterStreamInternal(int columnIndex, Reader reader, boolean lengthLess, long length, String updateMethodName) Set the given character stream for the specified parameter.voidupdateClob(int columnIndex, Reader x) Updates the designated column using the givenReaderobject.voidupdateClob(int columnIndex, Reader x, long length) JDBC 4.0 Updates the designated column with a java.sql.Clob value.voidupdateClob(int columnIndex, Clob x) JDBC 3.0 Updates the designated column with a java.sql.Clob value.voidupdateClob(String columnName, Reader x) Updates the designated column using the givenReaderobject.voidupdateClob(String columnName, Reader x, long length) JDBC 4.0 Updates the designated column with a java.sql.Clob value.voidupdateClob(String columnName, Clob x) JDBC 3.0 Updates the designated column with a java.sql.Clob value.voidupdateDate(int columnIndex, Date x) JDBC 2.0 Update a column with a Date value.voidupdateDate(String columnName, Date x) JDBC 2.0 Update a column with a Date value.voidupdateDouble(int columnIndex, double x) JDBC 2.0 Update a column with a Double value.voidupdateDouble(String columnName, double x) JDBC 2.0 Update a column with a double value.voidupdateFloat(int columnIndex, float x) JDBC 2.0 Update a column with a float value.voidupdateFloat(String columnName, float x) JDBC 2.0 Update a column with a float value.voidupdateInt(int columnIndex, int x) JDBC 2.0 Update a column with an integer value.voidJDBC 2.0 Update a column with an integer value.voidupdateLong(int columnIndex, long x) JDBC 2.0 Update a column with a long value.voidupdateLong(String columnName, long x) JDBC 2.0 Update a column with a long value.voidupdateNCharacterStream(int columnIndex, Reader x) voidupdateNCharacterStream(int columnIndex, Reader x, long length) voidupdateNCharacterStream(String columnName, Reader x) voidupdateNCharacterStream(String columnName, Reader x, long length) voidupdateNClob(int columnIndex, Reader reader) voidupdateNClob(int columnIndex, Reader x, long length) Updates the designated column using the given Reader object, which is the given number of characters long.voidupdateNClob(int columnIndex, NClob nClob) voidupdateNClob(String columnName, Reader reader) voidupdateNClob(String columnName, Reader x, long length) Updates the designated column using the given Reader object, which is the given number of characters long.voidupdateNClob(String columnName, NClob nClob) voidupdateNString(int columnIndex, String nString) voidupdateNString(String columnName, String nString) voidupdateNull(int columnIndex) JDBC 2.0 Give a nullable column a null value.voidupdateNull(String columnName) JDBC 2.0 Update a column with a null value.voidupdateObject(int columnIndex, Object x) JDBC 2.0 Update a column with an Object value.voidupdateObject(int columnIndex, Object x, int scale) JDBC 2.0 Update a column with an Object value.voidupdateObject(String columnName, Object x) JDBC 2.0 Update a column with an Object value.voidupdateObject(String columnName, Object x, int scale) JDBC 2.0 Update a column with an Object value.voidJDBC 3.0 Updates the designated column with a java.sql.Ref value.voidJDBC 3.0 Updates the designated column with a java.sql.Ref value.voidJDBC 2.0 Update the underlying database with the new contents of the current row.voidupdateRowId(int columnIndex, RowId x) voidupdateRowId(String columnName, RowId x) voidupdateShort(int columnIndex, short x) JDBC 2.0 Update a column with a short value.voidupdateShort(String columnName, short x) JDBC 2.0 Update a column with a short value.voidupdateSQLXML(int columnIndex, SQLXML xmlObject) voidupdateSQLXML(String columnName, SQLXML xmlObject) voidupdateString(int columnIndex, String x) JDBC 2.0 Update a column with a String value.voidupdateString(String columnName, String x) JDBC 2.0 Update a column with a String value.voidupdateTime(int columnIndex, Time x) JDBC 2.0 Update a column with a Time value.voidupdateTime(String columnName, Time x) JDBC 2.0 Update a column with a Time value.voidupdateTimestamp(int columnIndex, Timestamp x) JDBC 2.0 Update a column with a Timestamp value.voidupdateTimestamp(String columnName, Timestamp x) JDBC 2.0 Update a column with a Timestamp value.(package private) final voiduseStreamOrLOB(int columnIndex) Mark a column as already having a stream or LOB accessed from it.final booleanwasNull()A column may have the value of SQL NULL; wasNull reports whether the last column read had this special value.Methods inherited from class ConnectionChild
commitIfAutoCommit, commitIfNeeded, getCal, getConnectionSynchronization, getEmbedConnection, getLanguageConnectionContext, getLCC, handleException, needCommit, newSQLException, restoreContextStack, restoreIntrFlagIfSeen, setupContextStackMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ResultSet
updateObject, updateObject, updateObject, updateObject
-
Field Details
-
fetchedRowBase
private static long fetchedRowBaseFor use in debugging setLargeMaxRows() method added by JDBC 4.2 -
FIRST
protected static final int FIRST- See Also:
-
NEXT
protected static final int NEXT- See Also:
-
LAST
protected static final int LAST- See Also:
-
PREVIOUS
protected static final int PREVIOUS- See Also:
-
BEFOREFIRST
protected static final int BEFOREFIRST- See Also:
-
AFTERLAST
protected static final int AFTERLAST- See Also:
-
ABSOLUTE
protected static final int ABSOLUTE- See Also:
-
RELATIVE
protected static final int RELATIVE- See Also:
-
currentRow
The currentRow contains the data of the current row of the resultset. If currentRow is null, the cursor is not postioned on a row -
wasNull
protected boolean wasNull -
isClosed
boolean isClosedSet if this ResultSet is definitely closed. If the connection has been closed, or the database or system shutdown but the ResultSet has not been closed explictly then this may be false. Once this object detects the connection is closed isClosed will be set to true. -
isOnInsertRow
private boolean isOnInsertRow -
currentStream
-
theResults
-
forMetaData
private boolean forMetaData -
topWarning
-
singleUseActivation
Activation singleUseActivationThis activation is set by EmbedStatement for a single execution Activation. Ie. a ResultSet from a Statement.executeQuery() or a ResultSet that is now a dynamic result set. In this case the closing of this ResultSet will close the activation or the finalization of the parent EmbedStatement without it being closed will mark the Activation as unused.- See Also:
-
order
final int order -
resultDescription
-
maxRows
private long maxRows -
maxFieldSize
private final int maxFieldSize -
NumberofFetchedRows
private long NumberofFetchedRows -
stmt
The statement object that originally created us. we hang on to the statement to prevent GC from closing it under us -
owningStmt
The statement that currently owns this ResultSet. Statements created in procedures are passed off to the Statement that called the procedure. This is to avoid the ResultSet being closed due to the Statement within the procedure or the nested Connection being closed. -
applicationStmt
Statement object the application used to create this ResultSet. -
timeoutMillis
private final long timeoutMillis -
isAtomic
private final boolean isAtomic -
concurrencyOfThisResultSet
private final int concurrencyOfThisResultSet -
updateRow
-
columnGotUpdated
private boolean[] columnGotUpdated -
currentRowHasBeenUpdated
private boolean currentRowHasBeenUpdated -
fetchDirection
private int fetchDirection -
fetchSize
private int fetchSize -
columnUsedFlags
private boolean[] columnUsedFlagsIndicates which columns have been fetched as a stream or as a LOB for a row. Created on-demand by a getXXXStream or a get[BC]lob call. Note that we only track columns that can be accessed as a stream or a LOB object.
-
-
Constructor Details
-
EmbedResultSet
public EmbedResultSet(EmbedConnection conn, ResultSet resultsToWrap, boolean forMetaData, EmbedStatement stmt, boolean isAtomic) throws SQLException This class provides the glue between the Derby resultset and the JDBC resultset, mapping calls-to-calls.- Throws:
SQLException
-
-
Method Details
-
setFetchedRowBase
public static void setFetchedRowBase(long newBase) Debug method used to test the setLargeMaxRows() method added by JDBC 4.2. This method is a NOP on a production (insane) build of Derby. -
checkNotOnInsertRow
- Throws:
SQLException
-
checkOnRow
- Throws:
SQLException
-
initializeUpdateRowModifiers
private void initializeUpdateRowModifiers()Initializes the currentRowHasBeenUpdated and columnGotUpdated fields -
getColumnType
Check the column is in range *and* return the JDBC type of the column.- Throws:
SQLException- ResultSet is not on a row or columnIndex is out of range.
-
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.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:
nextin interfaceResultSet- Returns:
- true if the new current row is valid; false if there are no more rows
- Throws:
SQLException- thrown on failure.
-
movePosition
- Throws:
SQLException
-
movePosition
- Throws:
SQLException
-
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.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:
closein interfaceAutoCloseable- Specified by:
closein interfaceResultSet- Throws:
SQLException- thrown on failure.
-
markClosed
private void markClosed()Mark this ResultSet as closed and trigger the closing of the Statement if necessary. -
wasNull
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:
wasNullin interfaceResultSet- Returns:
- true if last column read was SQL NULL
- Throws:
SQLException- Thrown if this ResultSet is closed
-
getString
Get the value of a column in the current row as a Java String.- Specified by:
getStringin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getBoolean
Get the value of a column in the current row as a Java boolean.- Specified by:
getBooleanin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getByte
Get the value of a column in the current row as a Java byte.- Specified by:
getBytein interfaceResultSet- 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:
SQLException- thrown on failure.
-
getShort
Get the value of a column in the current row as a Java short.- Specified by:
getShortin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getInt
Get the value of a column in the current row as a Java int.- Specified by:
getIntin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getLong
Get the value of a column in the current row as a Java long.- Specified by:
getLongin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getFloat
Get the value of a column in the current row as a Java float.- Specified by:
getFloatin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getDouble
Get the value of a column in the current row as a Java double.- Specified by:
getDoublein interfaceResultSet- 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:
SQLException- thrown on failure.
-
getBytes
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:
getBytesin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getDate
Get the value of a column in the current row as a java.sql.Date object.- Specified by:
getDatein interfaceResultSet- 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:
SQLException- thrown on failure.
-
getTime
Get the value of a column in the current row as a java.sql.Time object.- Specified by:
getTimein interfaceResultSet- 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:
SQLException- thrown on failure.
-
getTimestamp
Get the value of a column in the current row as a java.sql.Timestamp object.- Specified by:
getTimestampin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getDate
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:
getDatein interfaceResultSet- 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:
SQLException- if a database-access error occurs.
-
getDate
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:
getDatein interfaceResultSet- Parameters:
columnName- is the SQL name of the columncal- the calendar to use in constructing the date- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
SQLException- if a database-access error occurs.
-
getTime
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:
getTimein interfaceResultSet- 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:
SQLException- if a database-access error occurs.
-
getTime
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:
getTimein interfaceResultSet- Parameters:
columnName- is the SQL name of the columncal- the calendar to use in constructing the time- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
SQLException- if a database-access error occurs.
-
getTimestamp
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:
getTimestampin interfaceResultSet- Parameters:
columnName- is the SQL name of the columncal- the calendar to use in constructing the timestamp- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
SQLException- if a database-access error occurs.
-
getTimestamp
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:
getTimestampin interfaceResultSet- 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:
SQLException- if a database-access error occurs.
-
getCharacterStream
JDBC 2.0Get the value of a column in the current row as a java.io.Reader.
- Specified by:
getCharacterStreamin interfaceResultSet- Throws:
SQLException- database error.
-
getAsciiStream
Pushes a converter on top of getCharacterStream().- Specified by:
getAsciiStreamin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getBinaryStream
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:
getBinaryStreamin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getString
Get the value of a column in the current row as a Java String.- Specified by:
getStringin interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
SQLException- thrown on failure.
-
getBoolean
Get the value of a column in the current row as a Java boolean.- Specified by:
getBooleanin interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is false
- Throws:
SQLException- thrown on failure.
-
getByte
Get the value of a column in the current row as a Java byte.- Specified by:
getBytein interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is 0
- Throws:
SQLException- thrown on failure.
-
getShort
Get the value of a column in the current row as a Java short.- Specified by:
getShortin interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is 0
- Throws:
SQLException- thrown on failure.
-
getInt
Get the value of a column in the current row as a Java int.- Specified by:
getIntin interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is 0
- Throws:
SQLException- thrown on failure.
-
getLong
Get the value of a column in the current row as a Java long.- Specified by:
getLongin interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is 0
- Throws:
SQLException- thrown on failure.
-
getFloat
Get the value of a column in the current row as a Java float.- Specified by:
getFloatin interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is 0
- Throws:
SQLException- thrown on failure.
-
getDouble
Get the value of a column in the current row as a Java double.- Specified by:
getDoublein interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is 0
- Throws:
SQLException- thrown on failure.
-
getBigDecimal
Deprecated.Get the value of a column in the current row as a java.lang.BigDecimal object.- Specified by:
getBigDecimalin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...scale- the number of digits to the right of the decimal- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
SQLException- thrown on failure.
-
getBigDecimal
- Specified by:
getBigDecimalin interfaceResultSet- Throws:
SQLException
-
getBigDecimal
Deprecated.Get the value of a column in the current row as a java.lang.BigDecimal object.- Specified by:
getBigDecimalin interfaceResultSet- Parameters:
columnName- is the SQL name of the columnscale- the number of digits to the right of the decimal- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
SQLException- thrown on failure.
-
getBigDecimal
JDBC 2.0 Get the value of a column in the current row as a java.math.BigDecimal object.- Specified by:
getBigDecimalin interfaceResultSet- Throws:
SQLException
-
getBytes
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:
getBytesin interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
SQLException- thrown on failure.
-
getDate
Get the value of a column in the current row as a java.sql.Date object.- Specified by:
getDatein interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
SQLException- thrown on failure.
-
getTime
Get the value of a column in the current row as a java.sql.Time object.- Specified by:
getTimein interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
SQLException- thrown on failure.
-
getTimestamp
Get the value of a column in the current row as a java.sql.Timestamp object.- Specified by:
getTimestampin interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
SQLException- thrown on failure.
-
getCharacterStream
JDBC 2.0Get the value of a column in the current row as a java.io.Reader.
- Specified by:
getCharacterStreamin interfaceResultSet- Throws:
SQLException- Feature not implemented for now.
-
getAsciiStream
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:
getAsciiStreamin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getBinaryStream
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:
getBinaryStreamin interfaceResultSet- 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:
SQLException- thrown on failure.
-
getUnicodeStream
Deprecated.JDBC 2.0 Deprecated in JDBC 2.0, not supported by JCC.- Specified by:
getUnicodeStreamin interfaceResultSet- Throws:
SQLException- thrown on failure.
-
getUnicodeStream
Deprecated.Deprecated in JDBC 2.0, not supported by JCC.- Specified by:
getUnicodeStreamin interfaceResultSet- Throws:
SQLException- thrown on failure.
-
getURL
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:
getURLin interfaceResultSet- 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:
SQLException- Feature not implemented for now.
-
getURL
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:
getURLin interfaceResultSet- Parameters:
columnName- - the SQL name of the column- Returns:
- the column value as a java.net.URL object, if the value is SQL NULL, the value returned is null in the Java programming language
- Throws:
SQLException- Feature not implemented for now.
-
getWarnings
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:
getWarningsin interfaceResultSet- Returns:
- the first SQLWarning or null
- Throws:
SQLException- Thrown if this ResultSet is closed
-
clearWarnings
After this call getWarnings returns null until a new warning is reported for this ResultSet.- Specified by:
clearWarningsin interfaceResultSet- Throws:
SQLException- Thrown if this ResultSet is closed
-
getCursorName
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:
getCursorNamein interfaceResultSet- Returns:
- the ResultSet's SQL cursor name
- Throws:
SQLException- thrown on failure.
-
getMetaData
The number, types and properties of a ResultSet's columns are provided by the getMetaData method.- Specified by:
getMetaDatain interfaceResultSet- Returns:
- the description of a ResultSet's columns
- Throws:
SQLException- thrown on failure.
-
getHoldability
JDBC 4.0Retrieves the holdability for this
ResultSetobject.- Specified by:
getHoldabilityin interfaceResultSet- Returns:
- either
ResultSet.HOLD_CURSORS_OVER_COMMITorResultSet.CLOSE_CURSORS_AT_COMMIT - Throws:
SQLException- if a database error occurs
-
getObject
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:
getObjectin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...- Returns:
- A java.lang.Object holding the column value.
- Throws:
SQLException- thrown on failure.
-
getObject
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:
getObjectin interfaceResultSet- Parameters:
columnName- is the SQL name of the column- Returns:
- A java.lang.Object holding the column value.
- Throws:
SQLException- thrown on failure.
-
getObject
JDBC 2.0 Returns the value of columnias a Java object. Use the param map to determine the class from which to construct data of SQL structured and distinct types.- Specified by:
getObjectin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...map- the mapping from SQL type names to Java classes- Returns:
- an object representing the SQL value
- Throws:
SQLException- Feature not implemented for now.
-
getObject
JDBC 2.0 Returns the value of columnias a Java object. Use the param map to determine the class from which to construct data of SQL structured and distinct types.- Specified by:
getObjectin interfaceResultSet- Parameters:
colName- the column namemap- the mapping from SQL type names to Java classes- Returns:
- an object representing the SQL value
- Throws:
SQLException- Feature not implemented for now.
-
findColumn
Map a Resultset column name to a ResultSet column index.- Specified by:
findColumnin interfaceResultSet- Parameters:
columnName- the name of the column- Returns:
- the column index
- Throws:
SQLException- thrown on failure.
-
getStatement
JDBC 2.0 Return the Statement that produced the ResultSet.- Specified by:
getStatementin interfaceResultSet- Returns:
- the Statment that produced the result set, or null if the result was produced some other way.
- Throws:
SQLException- if a database error occurs or the result set is closed
-
setApplicationStatement
Set the application Statement object that created this ResultSet. Used when the Statement objects returned to the application are wrapped for XA. -
getRef
JDBC 2.0 Get a REF(<structured-type>) column.- Specified by:
getRefin interfaceResultSet- Parameters:
i- the first column is 1, the second is 2, ...- Returns:
- an object representing data of an SQL REF type
- Throws:
SQLException- Feature not implemented for now.
-
getArray
JDBC 2.0 Get an array column.- Specified by:
getArrayin interfaceResultSet- Parameters:
i- the first column is 1, the second is 2, ...- Returns:
- an object representing an SQL array
- Throws:
SQLException- Feature not implemented for now.
-
getRef
JDBC 2.0 Get a REF(<structured-type>) column.- Specified by:
getRefin interfaceResultSet- Parameters:
colName- the column name- Returns:
- an object representing data of an SQL REF type
- Throws:
SQLException- Feature not implemented for now.
-
getArray
JDBC 2.0 Get an array column.- Specified by:
getArrayin interfaceResultSet- Parameters:
colName- the column name- Returns:
- an object representing an SQL array
- Throws:
SQLException- Feature not implemented for now.
-
isBeforeFirst
JDBC 2.0Determine if the cursor is before the first row in the result set.
- Specified by:
isBeforeFirstin interfaceResultSet- Returns:
- true if before the first row, false otherwise. Returns false when the result set contains no rows.
- Throws:
SQLException- Thrown on error.
-
isAfterLast
JDBC 2.0Determine if the cursor is after the last row in the result set.
- Specified by:
isAfterLastin interfaceResultSet- Returns:
- true if after the last row, false otherwise. Returns false when the result set contains no rows.
- Throws:
SQLException- Thrown on error.
-
isFirst
JDBC 2.0Determine if the cursor is on the first row of the result set.
- Specified by:
isFirstin interfaceResultSet- Returns:
- true if on the first row, false otherwise.
- Throws:
SQLException- Thrown on error.
-
isLast
JDBC 2.0Determine 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:
isLastin interfaceResultSet- Returns:
- true if on the last row, false otherwise.
- Throws:
SQLException- Thrown on error.
-
beforeFirst
JDBC 2.0Moves to the front of the result set, just before the first row. Has no effect if the result set contains no rows.
- Specified by:
beforeFirstin interfaceResultSet- Throws:
SQLException- if a database-access error occurs, or result set type is TYPE_FORWARD_ONLY
-
afterLast
JDBC 2.0Moves to the end of the result set, just after the last row. Has no effect if the result set contains no rows.
- Specified by:
afterLastin interfaceResultSet- Throws:
SQLException- if a database-access error occurs, or result set type is TYPE_FORWARD_ONLY.
-
first
JDBC 2.0Moves to the first row in the result set.
- Specified by:
firstin interfaceResultSet- Returns:
- true if on a valid row, false if no rows in the result set.
- Throws:
SQLException- if a database-access error occurs, or result set type is TYPE_FORWARD_ONLY.
-
last
JDBC 2.0Moves to the last row in the result set.
- Specified by:
lastin interfaceResultSet- Returns:
- true if on a valid row, false if no rows in the result set.
- Throws:
SQLException- if a database-access error occurs, or result set type is TYPE_FORWARD_ONLY.
-
getRow
JDBC 2.0Determine the current row number. The first row is number 1, the second number 2, etc.
- Specified by:
getRowin interfaceResultSet- Returns:
- the current row number, else return 0 if there is no current row
- Throws:
SQLException- if a database-access error occurs.
-
absolute
JDBC 2.0Move 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:
absolutein interfaceResultSet- Returns:
- true if on the result set, false if off.
- Throws:
SQLException- if a database-access error occurs, or row is 0, or result set type is TYPE_FORWARD_ONLY.
-
relative
JDBC 2.0Moves 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:
relativein interfaceResultSet- Returns:
- true if on a row, false otherwise.
- Throws:
SQLException- if a database-access error occurs, or there is no current row, or result set type is TYPE_FORWARD_ONLY.
-
previous
JDBC 2.0Moves 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:
previousin interfaceResultSet- Returns:
- true if on a valid row, false if off the result set.
- Throws:
SQLException- if a database-access error occurs, or result set type is TYPE_FORWAR_DONLY.
-
setFetchDirection
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:
setFetchDirectionin interfaceResultSet- Throws:
SQLException- if a database-access error occurs, or the result set type is TYPE_FORWARD_ONLY and direction is not FETCH_FORWARD.
-
getFetchDirection
JDBC 2.0 Return the fetch direction for this result set.- Specified by:
getFetchDirectionin interfaceResultSet- Throws:
SQLException- if a database-access error occurs
-
setFetchSize
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:
setFetchSizein interfaceResultSet- Parameters:
rows- the number of rows to fetch- Throws:
SQLException- if a database-access error occurs, or the condition 0 <= rows is not satisfied.
-
getFetchSize
JDBC 2.0 Return the fetch size for this result set.- Specified by:
getFetchSizein interfaceResultSet- Throws:
SQLException- if a database-access error occurs
-
getType
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:
getTypein interfaceResultSet- Returns:
- TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, or TYPE_SCROLL_SENSITIVE
- Throws:
SQLException- if a database-access error occurs
-
getConcurrency
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:
getConcurrencyin interfaceResultSet- Returns:
- the concurrency type, CONCUR_READ_ONLY, etc.
- Throws:
SQLException- if a database-access error occurs
-
rowUpdated
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:
rowUpdatedin interfaceResultSet- Returns:
- true if the row has been visibly updated by the owner or another, and updates are detected
- Throws:
SQLException- if a database-access error occurs- See Also:
-
rowInserted
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:
rowInsertedin interfaceResultSet- Returns:
- true if inserted and inserts are detected
- Throws:
SQLException- if a database-access error occurs- See Also:
-
rowDeleted
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:
rowDeletedin interfaceResultSet- Returns:
- true if deleted and deletes are detected
- Throws:
SQLException- if a database-access error occurs- See Also:
-
checksBeforeUpdateXXX
- Throws:
SQLException
-
checksBeforeUpdateOrDelete
- Throws:
SQLException
-
getDVDforColumnToBeUpdated
protected DataValueDescriptor getDVDforColumnToBeUpdated(int columnIndex, String updateMethodName) throws StandardException, SQLException - Throws:
StandardExceptionSQLException
-
checksBeforeInsert
- Throws:
SQLException
-
checksBeforeUpdateAsciiStream
Check whether it is OK to update a column usingupdateAsciiStream().- Parameters:
columnIndex- the column index (first column is 1)- Throws:
SQLException- if the column could not be updated withupdateAsciiStream()
-
checksBeforeUpdateBinaryStream
Check whether it is OK to update a column usingupdateBinaryStream().- Parameters:
columnIndex- the column index (first column is 1)- Throws:
SQLException- if the column could not be updated withupdateBinaryStream()
-
checksBeforeUpdateCharacterStream
Check whether it is OK to update a column usingupdateCharacterStream().- Parameters:
columnIndex- the column index (first column is 1)- Throws:
SQLException- if the column could not be updated withupdateCharacterStream()
-
updateNull
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:
updateNullin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...- Throws:
SQLException- if a database-access error occurs
-
updateBoolean
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:
updateBooleanin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateByte
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:
updateBytein interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateShort
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:
updateShortin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateInt
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:
updateIntin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateLong
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:
updateLongin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateFloat
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:
updateFloatin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateDouble
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:
updateDoublein interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateBigDecimal
- Specified by:
updateBigDecimalin interfaceResultSet- Throws:
SQLException
-
updateBigDecimal
JDBC 2.0 Update a column with a BigDecimal 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:
updateBigDecimalin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateString
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:
updateStringin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateBytes
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:
updateBytesin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateDate
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:
updateDatein interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateTime
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:
updateTimein interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateTimestamp
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:
updateTimestampin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateAsciiStream
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:
updateAsciiStreamin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column valuelength- the length of the stream- Throws:
SQLException- if a database-access error occurs
-
updateAsciiStream
Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached. 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 theupdateRowor insertRow methods are called to update the database.- Specified by:
updateAsciiStreamin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLYor this method is called on a closed result set
-
updateBinaryStream
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:
updateBinaryStreamin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column valuelength- the length of the stream- Throws:
SQLException- if a database-access error occurs
-
updateBinaryStream
Updates the designated column with a binary stream value. The data will be read from the stream as needed until end-of-stream is reached. 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 theupdateRoworinsertRowmethods are called to update the database.- Specified by:
updateBinaryStreamin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLYor this method is called on a closed result set
-
updateBinaryStreamInternal
private void updateBinaryStreamInternal(int columnIndex, InputStream x, boolean lengthLess, long length, String updateMethodName) throws SQLException Set the given binary stream for the specified parameter. IflengthLessistrue, the following conditions are either not checked or verified at the execution time ofupdateRow/insertRow:- If the stream length is negative.
- If the stream's actual length equals the specified length.
lengthLessvariable was added to differentiate between streams with invalid lengths and streams without known lengths.- Parameters:
columnIndex- the 1-based index of the parameter to set.x- the data.lengthLess- tells whether we know the length of the data or not.length- the length of the data. Ignored iflengthLessistrue.updateMethodName- the name of the method calling us. Used in error messages.- Throws:
SQLException- if reading the data fails, or one of the data checks fails.
-
updateCharacterStream
JDBC 4.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:
updateCharacterStreamin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column valuelength- the length of the stream- Throws:
SQLException- if a database-access error occurs
-
updateCharacterStream
Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached. 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 theupdateRowor insertRow methods are called to update the database.- Specified by:
updateCharacterStreamin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLYor this method is called on a closed result set
-
updateCharacterStreamInternal
private void updateCharacterStreamInternal(int columnIndex, Reader reader, boolean lengthLess, long length, String updateMethodName) throws SQLException Set the given character stream for the specified parameter. IflengthLessistrue, the following conditions are either not checked or verified at the execution time of the prepared statement:- If the stream length is negative.
- If the stream's actual length equals the specified length.
lengthLessvariable was added to differentiate between streams with invalid lengths and streams without known lengths.- Parameters:
columnIndex- the 1-based index of the parameter to set.reader- the data.lengthLess- tells whether we know the length of the data or not.length- the length of the data. Ignored iflengthLessistrue.- Throws:
SQLException- if reading the data fails, or one of the data checks fails.
-
updateObject
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:
updateObjectin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column valuescale- 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:
SQLException- if a database-access error occurs
-
adjustScale
Adjust the scale of a type.
- Throws:
SQLException
-
updateObject
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:
updateObjectin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateNull
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:
updateNullin interfaceResultSet- Parameters:
columnName- the name of the column- Throws:
SQLException- if a database-access error occurs
-
updateBoolean
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:
updateBooleanin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateByte
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:
updateBytein interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateShort
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:
updateShortin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateInt
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:
updateIntin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateLong
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:
updateLongin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateFloat
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:
updateFloatin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateDouble
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:
updateDoublein interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateString
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:
updateStringin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateBytes
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:
updateBytesin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateDate
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:
updateDatein interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateTime
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:
updateTimein interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateTimestamp
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:
updateTimestampin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
updateAsciiStream
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:
updateAsciiStreamin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column valuelength- of the stream- Throws:
SQLException- if a database-access error occurs
-
updateBinaryStream
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:
updateBinaryStreamin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column valuelength- of the stream- Throws:
SQLException- if a database-access error occurs
-
updateCharacterStream
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:
updateCharacterStreamin interfaceResultSet- Parameters:
columnName- the name of the columnreader- the new column valuelength- length of the stream- Throws:
SQLException- if a database-access error occurs
-
updateObject
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:
updateObjectin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column valuescale- 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:
SQLException- if a database-access error occurs
-
updateObject
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:
updateObjectin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column value- Throws:
SQLException- if a database-access error occurs
-
insertRow
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:
insertRowin interfaceResultSet- Throws:
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
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:
updateRowin interfaceResultSet- Throws:
SQLException- if a database-access error occurs, or if called when on the insert row
-
deleteRow
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:
deleteRowin interfaceResultSet- Throws:
SQLException- if a database-access error occurs, or if called when on the insert row.
-
getFullBaseTableName
-
refreshRow
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:
refreshRowin interfaceResultSet- Throws:
SQLException- if a database-access error occurs, or if called when on the insert row.
-
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. If no updates have been made or updateRow() has already been called, then this method has no effect.- Specified by:
cancelRowUpdatesin interfaceResultSet- Throws:
SQLException- if a database-access error occurs, or if called when on the insert row.
-
moveToInsertRow
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:
moveToInsertRowin interfaceResultSet- Throws:
SQLException- if a database-access error occurs, or the result set is not updatable
-
moveToCurrentRow
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:
moveToCurrentRowin interfaceResultSet- Throws:
SQLException- if a database-access error occurs, or the result set is not updatable
-
getBlob
JDBC 2.0 Get a BLOB column.- Specified by:
getBlobin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...- Returns:
- an object representing a BLOB
- Throws:
SQLException
-
getClob
JDBC 2.0 Get a CLOB column.- Specified by:
getClobin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...- Returns:
- an object representing a CLOB
- Throws:
SQLException
-
getBlob
JDBC 2.0 Get a BLOB column.- Specified by:
getBlobin interfaceResultSet- Parameters:
columnName- the column name- Returns:
- an object representing a BLOB
- Throws:
SQLException
-
getClob
JDBC 2.0 Get a CLOB column.- Specified by:
getClobin interfaceResultSet- Parameters:
columnName- the column name- Returns:
- an object representing a CLOB
- Throws:
SQLException- Feature not implemented for now.
-
updateBlob
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:
updateBlobin interfaceResultSet- Parameters:
columnIndex- - the first column is 1, the second is 2x- - the new column value- Throws:
SQLException- Feature not implemented for now.
-
updateBlob
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:
updateBlobin interfaceResultSet- Parameters:
columnName- - the SQL name of the columnx- - the new column value- Throws:
SQLException- Feature not implemented for now.
-
updateClob
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:
updateClobin interfaceResultSet- Parameters:
columnIndex- - the first column is 1, the second is 2x- - the new column value- Throws:
SQLException- Feature not implemented for now.
-
updateClob
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:
updateClobin interfaceResultSet- Parameters:
columnName- - the SQL name of the columnx- - the new column value- Throws:
SQLException- Feature not implemented for now.
-
findColumnName
Map a Resultset column name to a ResultSet column index.- Parameters:
columnName- the name of the column- Returns:
- the column index
- Throws:
SQLException- thrown on failure.
-
closeCurrentStream
private final void closeCurrentStream()Documented behaviour for streams is that they are implicitly closed on the next get*() method call. -
checkIfClosed
Throw an exception if this ResultSet is closed.- Parameters:
operation- The operation the caller is trying to perform- Throws:
SQLException- Thrown if this ResultSet is closed.
-
checkExecIfClosed
Throw an exception if this ResultSet is closed or its Connection has been closed. If the ResultSet has not been explictly closed but the Connection is closed, then this ResultSet will be marked as closed.- Throws:
SQLException
-
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
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
- Throws:
SQLException
-
getColumn
protected final DataValueDescriptor getColumn(int columnIndex) throws SQLException, StandardException Get the column value for a getXXX() call. This method:- Closes the current stream (as per JDBC)
- Throws a SQLException if the result set is closed
- Throws a SQLException if the ResultSet is not on a row
- Throws a SQLException if the columnIndex is out of range
- Returns the DataValueDescriptor for the column.
- Throws:
SQLExceptionStandardException
-
noStateChangeException
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:- getXXX() calls on ResultSet - ResultSet is not closed.
- setXXX() calls on PreparedStatement - ResultSet is not closed.
-
setDynamicResultSet
A dynamic result 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.
In the case where the dynamic result will not be accessible then owningStmt will be null, the ResultSet will be linked to the root connection to allow its close method to work. It will remain attached to its original statement. -
compareTo
- Specified by:
compareToin interfaceComparable
-
checkScrollCursor
Checks if the result set has a scrollable cursor.- Parameters:
methodName- name of the method which requests the check- Throws:
SQLException- if the result set is closed or its type isTYPE_FORWARD_ONLY
-
checkUpdatableCursor
- Throws:
SQLException
-
checkRowPosition
- Throws:
SQLException
-
isForUpdate
public final boolean isForUpdate()* Is this result set from a select for update statement?- Specified by:
isForUpdatein interfaceEngineResultSet
-
getColumnSQLType
-
getMaxColumnWidth
private final int getMaxColumnWidth(int columnIndex) Return the user-defined maximum size of the column. Note that this may be different from the maximum column size Derby is able, or allowed, to handle (called 'maximum maximum length').- Parameters:
columnIndex- the 1-based index of the column- Returns:
- the maximum length of the column
-
dataTypeConversion
-
dataTypeConversion
-
useStreamOrLOB
Mark a column as already having a stream or LOB accessed from it. If the column was already accessed, throw an exception.- Parameters:
columnIndex- 1-based column index- Throws:
SQLException- if the column has already been accessed
-
checkLOBMultiCall
Checks if a stream or a LOB object has already been created for the specified LOB column.Accessing a LOB column more than once is not forbidden by the JDBC specification, but the Java API states that for maximum portability, result set columns within each row should be read in left-to-right order, and each column should be read only once. The restriction was implemented in Derby due to complexities with the positioning of store streams when the user was given multiple handles to the stream.
- Parameters:
columnIndex- 1-based index of the LOB column- Throws:
SQLException- if the column has already been accessed
-
isClosed
JDBC 4.0Checks whether this
ResultSetobject has been closed, either automatically or becauseclose()has been called.- Specified by:
isClosedin interfaceResultSet- Returns:
trueif theResultSetis closed,falseotherwise- Throws:
SQLException- if a database error occurs
-
addWarning
Adds a warning to the end of the warning chain.- Parameters:
w- The warning to add to the warning chain.
-
updateAsciiStream
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:
updateAsciiStreamin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column valuelength- the length of the stream- Throws:
SQLException- if a database-access error occurs
-
updateBinaryStream
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:
updateBinaryStreamin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column valuelength- the length of the stream- Throws:
SQLException- if a database-access error occurs
-
updateCharacterStream
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:
updateCharacterStreamin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- the new column valuelength- the length of the stream- Throws:
SQLException- if a database-access error occurs
-
updateAsciiStream
JDBC 4.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:
updateAsciiStreamin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column valuelength- of the stream- Throws:
SQLException- if a database-access error occurs
-
updateAsciiStream
Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached. 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 theupdateRowor insertRow methods are called to update the database.- Specified by:
updateAsciiStreamin interfaceResultSet- Parameters:
columnName- the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the columnx- the new column value- Throws:
SQLException- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLYor this method is called on a closed result set
-
updateBinaryStream
JDBC 4.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:
updateBinaryStreamin interfaceResultSet- Parameters:
columnName- the name of the columnx- the new column valuelength- of the stream- Throws:
SQLException- if a database-access error occurs
-
updateBinaryStream
Updates the designated column with a binary stream value. The data will be read from the stream as needed until end-of-stream is reached. 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 theupdateRoworinsertRowmethods are called to update the database.- Specified by:
updateBinaryStreamin interfaceResultSet- Parameters:
columnName- the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the columnx- the new column value- Throws:
SQLException- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLYor this method is called on a closed result set
-
updateCharacterStream
public void updateCharacterStream(String columnName, Reader reader, long length) throws SQLException JDBC 4.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:
updateCharacterStreamin interfaceResultSet- Parameters:
columnName- the name of the columnreader- the new column valuelength- length of the stream- Throws:
SQLException- if a database-access error occurs
-
updateCharacterStream
Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached. 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 theupdateRowor insertRow methods are called to update the database.- Specified by:
updateCharacterStreamin interfaceResultSet- Parameters:
columnName- the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the columnreader- the new column value- Throws:
SQLException- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLYor this method is called on a closed result set
-
updateBlob
JDBC 4.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:
updateBlobin interfaceResultSet- Parameters:
columnIndex- - the first column is 1, the second is 2x- - the new column valuelength- - the length of the Blob datatype- Throws:
SQLException
-
updateBlob
Updates the designated column using the given input stream. The data will be read from the stream as needed until end-of-stream is reached. 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:
updateBlobin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- an object that contains the data to set the parameter value to.- Throws:
SQLException- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLYor this method is called on a closed result set
-
updateBlob
JDBC 4.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:
updateBlobin interfaceResultSet- Parameters:
columnName- - the name of the column to be updatedx- - the new column valuelength- - the length of the Blob datatype- Throws:
SQLException
-
updateBlob
Updates the designated column using the given input stream. The data will be read from the stream as needed until end-of-stream is reached. 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:
updateBlobin interfaceResultSet- Parameters:
columnName- the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the columnx- an object that contains the data to set the parameter value to.- Throws:
SQLException- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLYor this method is called on a closed result set
-
updateClob
JDBC 4.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:
updateClobin interfaceResultSet- Parameters:
columnIndex- - the first column is 1, the second is 2x- - the new column value- Throws:
SQLException- Feature not implemented for now.
-
updateClob
Updates the designated column using the givenReaderobject. The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion fromUNICODEto the database char format. 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 theupdateRoworinsertRowmethods are called to update the database.- Specified by:
updateClobin interfaceResultSet- Parameters:
columnIndex- the first column is 1, the second is 2, ...x- an object that contains the data to set the parameter value to- Throws:
SQLException- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLYor this method is called on a closed result set
-
updateClob
JDBC 4.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:
updateClobin interfaceResultSet- Parameters:
columnName- - the name of the Clob columnx- - the new column value- Throws:
SQLException- Feature not implemented for now.
-
updateClob
Updates the designated column using the givenReaderobject. The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion fromUNICODEto the database char format. 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 theupdateRoworinsertRowmethods are called to update the database.- Specified by:
updateClobin interfaceResultSet- Parameters:
columnName- the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the columnx- an object that contains the data to set the parameter value to- Throws:
SQLException- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLYor this method is called on a closed result set
-
updateRef
JDBC 3.0 Updates the designated column with a java.sql.Ref value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.- Specified by:
updateRefin interfaceResultSet- Parameters:
columnIndex- - the first column is 1, the second is 2x- - the new column value- Throws:
SQLException- Feature not implemented for now.
-
updateRef
JDBC 3.0 Updates the designated column with a java.sql.Ref value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.- Specified by:
updateRefin interfaceResultSet- Parameters:
columnName- - the SQL name of the columnx- - the new column value- Throws:
SQLException- Feature not implemented for now.
-
updateArray
JDBC 3.0 Updates the designated column with a java.sql.Array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.- Specified by:
updateArrayin interfaceResultSet- Parameters:
columnIndex- - the first column is 1, the second is 2x- - the new column value- Throws:
SQLException- Feature not implemented for now.
-
updateArray
JDBC 3.0 Updates the designated column with a java.sql.Array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.- Specified by:
updateArrayin interfaceResultSet- Parameters:
columnName- - the SQL name of the columnx- - the new column value- Throws:
SQLException- Feature not implemented for now.
-
getRowId
- Specified by:
getRowIdin interfaceResultSet- Throws:
SQLException
-
getRowId
- Specified by:
getRowIdin interfaceResultSet- Throws:
SQLException
-
updateNCharacterStream
- Specified by:
updateNCharacterStreamin interfaceResultSet- Throws:
SQLException
-
updateNCharacterStream
- Specified by:
updateNCharacterStreamin interfaceResultSet- Throws:
SQLException
-
updateNCharacterStream
- Specified by:
updateNCharacterStreamin interfaceResultSet- Throws:
SQLException
-
updateNCharacterStream
- Specified by:
updateNCharacterStreamin interfaceResultSet- Throws:
SQLException
-
updateNString
- Specified by:
updateNStringin interfaceResultSet- Throws:
SQLException
-
updateNString
- Specified by:
updateNStringin interfaceResultSet- Throws:
SQLException
-
updateNClob
- Specified by:
updateNClobin interfaceResultSet- Throws:
SQLException
-
updateNClob
- Specified by:
updateNClobin interfaceResultSet- Throws:
SQLException
-
updateNClob
- Specified by:
updateNClobin interfaceResultSet- Throws:
SQLException
-
updateNClob
- Specified by:
updateNClobin interfaceResultSet- Throws:
SQLException
-
getNCharacterStream
- Specified by:
getNCharacterStreamin interfaceResultSet- Throws:
SQLException
-
getNCharacterStream
- Specified by:
getNCharacterStreamin interfaceResultSet- Throws:
SQLException
-
getNClob
- Specified by:
getNClobin interfaceResultSet- Throws:
SQLException
-
getNClob
- Specified by:
getNClobin interfaceResultSet- Throws:
SQLException
-
getNString
- Specified by:
getNStringin interfaceResultSet- Throws:
SQLException
-
getNString
- Specified by:
getNStringin interfaceResultSet- Throws:
SQLException
-
updateRowId
- Specified by:
updateRowIdin interfaceResultSet- Throws:
SQLException
-
updateRowId
- Specified by:
updateRowIdin interfaceResultSet- Throws:
SQLException
-
getSQLXML
- Specified by:
getSQLXMLin interfaceResultSet- Throws:
SQLException
-
getSQLXML
- Specified by:
getSQLXMLin interfaceResultSet- Throws:
SQLException
-
updateSQLXML
- Specified by:
updateSQLXMLin interfaceResultSet- Throws:
SQLException
-
updateSQLXML
- Specified by:
updateSQLXMLin interfaceResultSet- Throws:
SQLException
-
isWrapperFor
Returns false unlessinterfacesis implemented- Specified by:
isWrapperForin interfaceWrapper- Parameters:
interfaces- a Class defining an interface.- Returns:
- true if this implements the interface or directly or indirectly wraps an object that does.
- Throws:
SQLException- if an error occurs while determining whether this is a wrapper for an object with the given interface.
-
unwrap
Returnsthisif this class implements the interface- Specified by:
unwrapin interfaceWrapper- Parameters:
interfaces- a Class defining an interface- Returns:
- an object that implements the interface
- Throws:
SQLException- if no object if found that implements the interface
-
updateNClob
Updates the designated column using the given Reader object, which is the given number of characters long.- Specified by:
updateNClobin interfaceResultSet- Parameters:
columnIndex- - the first column is 1, the second is 2x- - the new column valuelength- - the length of the stream- Throws:
SQLException- Feature not implemented for now.
-
updateNClob
Updates the designated column using the given Reader object, which is the given number of characters long.- Specified by:
updateNClobin interfaceResultSet- Parameters:
columnName- - the Name of the column to be updatedx- - the new column valuelength- - the length of the stream- Throws:
SQLException- Feature not implemented for now.
-
getObject
Retrieve the column as an object of the desired type.- Specified by:
getObjectin interfaceResultSet- Throws:
SQLException
-
mismatchException
- Throws:
SQLException
-
getObject
- Specified by:
getObjectin interfaceResultSet- Throws:
SQLException
-
isNull
Description copied from interface:EngineResultSetIs the designated columnIndex a null data value? This is used by EXTDTAInputStream to get the null value without retrieving the underlying data value.- Specified by:
isNullin interfaceEngineResultSet- Parameters:
columnIndex-- Returns:
- true if the data value at columnIndex for the current row is null
- Throws:
SQLException
-
getLength
Description copied from interface:EngineResultSetReturn the length of the designated columnIndex data value. Implementation is type dependent.- Specified by:
getLengthin interfaceEngineResultSet- Parameters:
columnIndex- column to access- Returns:
- length of data value
- Throws:
SQLException- See Also:
-