Class ClientResultSet
- java.lang.Object
-
- org.apache.derby.client.am.ClientResultSet
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.sql.ResultSet
,java.sql.Wrapper
,ResultSetCallbackInterface
,UnitOfWorkListener
- Direct Known Subclasses:
NetResultSet
public abstract class ClientResultSet extends java.lang.Object implements java.sql.ResultSet, ResultSetCallbackInterface
-
-
Field Summary
-
Constructor Summary
Constructors Modifier Constructor Description protected
ClientResultSet(Agent agent, ClientStatement statement, Cursor cursor, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
absolute(int row)
private boolean
absoluteX(int row)
void
accumulateWarning(SqlWarning e)
private void
adjustAbsoluteRowset(long rowNumber)
private void
adjustFirstRowset()
private void
adjustLastRowset(long row)
private void
adjustNextRowset()
private void
adjustPreviousRowset(int orientation, long rowNumber, boolean isAfterLastRow)
private void
adjustRefreshRowset()
private void
adjustRelativeRowset(long rowNumber)
void
afterLast()
private void
afterLastX()
void
beforeFirst()
private void
beforeFirstX()
private java.lang.String
buildDeleteString()
private java.lang.String
buildInsertString()
private java.lang.String
buildUpdateString()
void
cancelRowUpdates()
protected void
checkAndThrowReceivedQueryTerminatingException()
protected void
checkForClosedResultSet(java.lang.String operation)
private void
checkForUpdatableResultSet(java.lang.String operation)
private void
checkForValidColumnIndex(int column)
private void
checkForValidCursorPosition()
private void
checkGetterPreconditions(int column, java.lang.String operation)
private void
checkLOBMultiCall(int columnIndex)
Checks if a stream or a LOB object has already been created for the specified LOB column.private void
checkPositionedOnPlainRow()
private int
checkRowsetSqlca()
private int
checkRowsetSqlca(int row)
private void
checkThatResultSetIsNotDynamic()
private void
checkThatResultSetTypeIsScrollable()
private void
checkUpdatePreconditions(int column, java.lang.String operation)
void
clearWarnings()
Clear all warnings on thisResultSet
and make subsequent calls togetWarnings()
returnnull
until a new warning is reported.private void
clearWarningsX()
void
close()
private void
closeOpenStreams()
Closes the current stream, if there is one.private void
closeStatementOnCompletion()
Close Statement if it is set to closeOnCompletionvoid
closeX()
void
completeLocalCommit(java.util.Iterator listenerIterator)
void
completeLocalRollback(java.util.Iterator listenerIterator)
int
completeSqlca(Sqlca sqlca)
private java.sql.Date
convertFromDefaultCalendar(java.sql.Date date, java.util.Calendar cal)
Convert a date originally set using the default calendar to a value representing the same date in a different calendar.private java.sql.Time
convertFromDefaultCalendar(java.sql.Time time, java.util.Calendar cal)
Convert a time originally set using the default calendar to a value representing the same time in a different calendar.private java.sql.Timestamp
convertFromDefaultCalendar(java.sql.Timestamp ts, java.util.Calendar cal)
Convert a timestamp originally set using the default calendar to a value representing the same timestamp in a different calendar.private static java.util.Calendar
createCalendar(java.util.Date date)
Create a calendar with default locale and time zone.private CloseFilterInputStream
createCloseFilterInputStream(java.io.InputStream is)
(package private) void
createLOBColumnTracker()
Initializes the LOB state tracker.private void
delete()
void
deleteRow()
private void
deleteRowX()
void
earlyCloseComplete(Sqlca sqlca)
void
expandRowsetSqlca()
int
findColumn(java.lang.String columnName)
protected int
findColumnX(java.lang.String columnName, java.lang.String operation)
boolean
first()
private boolean
firstX()
private void
flowCloseAndAutoCommitIfNotAutoCommitted()
private void
flowGetRowset(int orientation, long rowNumber)
private void
flowPositioningFetch(int scrollOrientation, int rowToFetch)
private boolean
getAbsoluteRowset(long row)
java.sql.Array
getArray(int column)
java.sql.Array
getArray(java.lang.String columnName)
java.io.InputStream
getAsciiStream(int column)
java.io.InputStream
getAsciiStream(java.lang.String columnName)
java.math.BigDecimal
getBigDecimal(int column)
java.math.BigDecimal
getBigDecimal(int column, int scale)
Deprecated.java.math.BigDecimal
getBigDecimal(java.lang.String columnName)
java.math.BigDecimal
getBigDecimal(java.lang.String columnName, int scale)
Deprecated.java.io.InputStream
getBinaryStream(int column)
java.io.InputStream
getBinaryStream(java.lang.String columnName)
java.sql.Blob
getBlob(int column)
java.sql.Blob
getBlob(java.lang.String columnName)
boolean
getBoolean(int column)
boolean
getBoolean(java.lang.String columnName)
byte
getByte(int column)
byte
getByte(java.lang.String columnName)
byte[]
getBytes(int column)
byte[]
getBytes(java.lang.String columnName)
java.io.Reader
getCharacterStream(int column)
java.io.Reader
getCharacterStream(java.lang.String columnName)
java.sql.Clob
getClob(int column)
java.sql.Clob
getClob(java.lang.String columnName)
int
getConcurrency()
ConnectionCallbackInterface
getConnectionCallbackInterface()
java.lang.String
getCursorName()
java.sql.Date
getDate(int column)
java.sql.Date
getDate(int column, java.util.Calendar cal)
java.sql.Date
getDate(java.lang.String columnName)
java.sql.Date
getDate(java.lang.String columnName, java.util.Calendar cal)
double
getDouble(int column)
double
getDouble(java.lang.String columnName)
int
getFetchDirection()
int
getFetchSize()
private boolean
getFirstRowset()
float
getFloat(int column)
float
getFloat(java.lang.String columnName)
int
getHoldability()
Retrieves the holdability for thisResultSet
object.int
getInt(int column)
int
getInt(java.lang.String columnName)
private boolean
getLastRowset(long row)
long
getLong(int column)
long
getLong(java.lang.String columnName)
java.sql.ResultSetMetaData
getMetaData()
(package private) ColumnMetaData
getMetaDataX()
java.io.Reader
getNCharacterStream(int columnIndex)
java.io.Reader
getNCharacterStream(java.lang.String columnName)
java.sql.NClob
getNClob(int i)
java.sql.NClob
getNClob(java.lang.String colName)
private boolean
getNextRowset()
java.lang.String
getNString(int columnIndex)
java.lang.String
getNString(java.lang.String columnName)
java.lang.Object
getObject(int column)
<T> T
getObject(int columnIndex, java.lang.Class<T> type)
Retrieve the column as an object of the desired type.java.lang.Object
getObject(int column, java.util.Map map)
java.lang.Object
getObject(java.lang.String columnName)
<T> T
getObject(java.lang.String columnName, java.lang.Class<T> type)
java.lang.Object
getObject(java.lang.String columnName, java.util.Map map)
(package private) java.lang.Object
getObjectX(int column)
private void
getPreparedStatementForDelete()
private void
getPreparedStatementForInsert()
private void
getPreparedStatementForUpdate()
private boolean
getPreviousRowset()
java.sql.Ref
getRef(int column)
java.sql.Ref
getRef(java.lang.String columnName)
private boolean
getRefreshRowset()
private boolean
getRelativeRowset(long rows)
int
getRow()
protected void
getRowCount()
java.sql.RowId
getRowId(int columnIndex)
java.sql.RowId
getRowId(java.lang.String columnName)
private long
getRowUncast()
private int
getRowX()
byte
getRSReturnability()
private java.lang.String
getServerCursorName()
short
getShort(int column)
short
getShort(java.lang.String columnName)
java.sql.SQLXML
getSQLXML(int columnIndex)
java.sql.SQLXML
getSQLXML(java.lang.String colName)
java.sql.Statement
getStatement()
Retrieves theStatement
object that produced this object, ornull
if theResultSet
was not produced by aStatement
object.StatementCallbackInterface
getStatementCallbackInterface()
java.lang.String
getString(int column)
java.lang.String
getString(java.lang.String columnName)
private java.lang.String
getTableName()
java.sql.Time
getTime(int column)
java.sql.Time
getTime(int column, java.util.Calendar cal)
java.sql.Time
getTime(java.lang.String columnName)
java.sql.Time
getTime(java.lang.String columnName, java.util.Calendar cal)
java.sql.Timestamp
getTimestamp(int column)
java.sql.Timestamp
getTimestamp(int column, java.util.Calendar calendar)
java.sql.Timestamp
getTimestamp(java.lang.String columnName)
java.sql.Timestamp
getTimestamp(java.lang.String columnName, java.util.Calendar cal)
int
getType()
java.io.InputStream
getUnicodeStream(int column)
Deprecated.java.io.InputStream
getUnicodeStream(java.lang.String columnName)
Deprecated.java.net.URL
getURL(int columnIndex)
java.net.URL
getURL(java.lang.String columnName)
java.sql.SQLWarning
getWarnings()
Returns the firstSQLWarning
reported on thisResultSet
object, ornull
if there are no warnings.private void
insert()
void
insertRow()
private void
insertRowX()
boolean
isAfterLast()
private boolean
isAfterLastX()
boolean
isBeforeFirst()
private boolean
isBeforeFirstX()
boolean
isClosed()
Checks whether thisResultSet
object has been closed, either automatically or becauseclose()
has been called.boolean
isFirst()
private boolean
isFirstX()
boolean
isLast()
private boolean
isLastX()
private boolean
isNull(int column)
private boolean
isServerCursorPositionAfterLast()
private boolean
isServersCursorPositionBeforeFirst()
boolean
isWrapperFor(java.lang.Class<?> interfaces)
Returns false unlessinterfaces
is implementedprivate java.sql.SQLException
jdbc3MethodNotSupported()
boolean
last()
private boolean
lastX()
void
listenToUnitOfWork()
(package private) void
markAutoCommitted()
(package private) void
markClosed()
Mark this ResultSet as closed.(package private) void
markClosed(boolean removeListener)
Mark this ResultSet as closed.void
markClosedOnServer()
Mark this ResultSet as closed on the server.void
markLOBAsPublished(int index)
Marks the LOB at the specified column as published.private void
markPositionedUpdateDeletePreparedStatementsClosed()
private java.sql.SQLException
mismatchException(java.lang.String targetTypeName, int columnIndex)
private void
moveToAfterLast()
private void
moveToBeforeFirst()
void
moveToCurrentRow()
private void
moveToCurrentRowX()
Moves off the insert row if positioned there, and checks the current row for releasable LOB locators if positioned on a valid data row.void
moveToInsertRow()
boolean
next()
(package private) boolean
nextX()
private void
nullDataForGC()
private void
nullOutReferenceInStatement()
protected abstract void
parseRowset_()
(package private) void
parseScrollableRowset()
private void
positionToCurrentRowAndDelete()
private void
positionToCurrentRowAndUpdate()
protected abstract void
preClose_()
Method that is invoked bycloseX()
before the result set is actually being closed.boolean
previous()
private boolean
previousX()
private void
readAutoCommitIfNotAutoCommitted()
(package private) void
readClose()
private void
readCloseAndAutoCommit(boolean readAutoCommit)
abstract void
readCursorClose_()
private void
readDeleteRow()
abstract void
readFetch_()
private void
readInsertRow()
abstract void
readPositioningFetch_()
abstract void
readScrollableFetch_()
private void
readUpdateRow()
void
refreshRow()
private void
refreshRowX()
boolean
relative(int rows)
private boolean
relativeX(int rows)
(package private) boolean
repositionScrollableResultSetBeforeJDBC1PositionedUpdateDelete()
private void
resetRowsetFlags()
private void
resetRowsetSqlca()
private void
resetUpdatedColumns()
private void
resetUpdatedColumnsForInsert()
private boolean
resultSetContainsNoRows()
(package private) boolean
rowCountIsUnknown()
boolean
rowDeleted()
boolean
rowInserted()
private boolean
rowIsInCurrentRowset(long rowNumber)
private boolean
rowIsInCurrentRowset(long rowNumber, int orientation)
boolean
rowUpdated()
private void
setAbsolutePositionBasedOnAllRowsReceived()
void
setFetchDirection(int direction)
void
setFetchSize(int rows)
abstract void
setFetchSize_(int rows)
void
setRowCountEvent(long rowCount)
private void
setRowsetAfterLastEvent()
private void
setRowsetBeforeFirstEvent()
private void
setRowsetNoRowsEvent()
void
setRSReturnability(byte rsReturnability)
void
setValidCursorPosition(boolean isValidCursorPosition)
private void
setWasNull(int column)
private void
unuseStreamsAndLOBs()
Clears the flags for used columns, typically invoked when changing the result set position.<T> T
unwrap(java.lang.Class<T> interfaces)
Returnsthis
if this class implements the interfaceprivate void
update()
void
updateArray(int columnIndex, java.sql.Array x)
void
updateArray(java.lang.String columnName, java.sql.Array x)
void
updateAsciiStream(int columnIndex, java.io.InputStream x)
Updates the designated column with an ascii stream value.void
updateAsciiStream(int column, java.io.InputStream x, int length)
void
updateAsciiStream(int columnIndex, java.io.InputStream x, long length)
Update a column with an ascii stream value.void
updateAsciiStream(java.lang.String columnName, java.io.InputStream x)
Updates the designated column with an ascii stream value.void
updateAsciiStream(java.lang.String columnName, java.io.InputStream x, int length)
void
updateAsciiStream(java.lang.String columnName, java.io.InputStream x, long length)
Update a column with an ascii stream value.void
updateBigDecimal(int column, java.math.BigDecimal x)
void
updateBigDecimal(java.lang.String columnName, java.math.BigDecimal x)
void
updateBinaryStream(int columnIndex, java.io.InputStream x)
Updates the designated column with a binary stream value.void
updateBinaryStream(int column, java.io.InputStream x, int length)
void
updateBinaryStream(int columnIndex, java.io.InputStream x, long length)
Update a column with a binary stream value.void
updateBinaryStream(java.lang.String columnLabel, java.io.InputStream x)
Updates the designated column with a binary stream value.void
updateBinaryStream(java.lang.String columnName, java.io.InputStream x, int length)
void
updateBinaryStream(java.lang.String columnName, java.io.InputStream x, long length)
Update a column with a binary stream value.void
updateBlob(int columnIndex, java.io.InputStream x)
Updates the designated column using the given input stream.void
updateBlob(int columnIndex, java.io.InputStream x, long length)
Updates the designated column using the given input stream, which will have the specified number of bytes.void
updateBlob(int columnIndex, java.sql.Blob x)
Updates the designated column with ajava.sql.Blob
value.void
updateBlob(java.lang.String columnLabel, java.io.InputStream x)
Updates the designated column using the given input stream.void
updateBlob(java.lang.String columnName, java.io.InputStream x, long length)
Updates the designated column using the given input stream, which will have the specified number of bytes.void
updateBlob(java.lang.String columnName, java.sql.Blob x)
Updates the designated column with ajava.sql.Blob
value.void
updateBoolean(int column, boolean x)
void
updateBoolean(java.lang.String columnName, boolean x)
void
updateByte(int column, byte x)
void
updateByte(java.lang.String columnName, byte x)
void
updateBytes(int column, byte[] x)
void
updateBytes(java.lang.String columnName, byte[] x)
void
updateCharacterStream(int columnIndex, java.io.Reader reader)
Updates the designated column with a character stream value.void
updateCharacterStream(int column, java.io.Reader x, int length)
void
updateCharacterStream(int columnIndex, java.io.Reader x, long length)
Update a column with a character stream value.void
updateCharacterStream(java.lang.String columnLabel, java.io.Reader reader)
Updates the designated column with a character stream value.void
updateCharacterStream(java.lang.String columnName, java.io.Reader x, int length)
void
updateCharacterStream(java.lang.String columnName, java.io.Reader reader, long length)
Update a column with a character stream value.void
updateClob(int columnIndex, java.io.Reader reader)
Updates the designated column using the givenReader
object.void
updateClob(int columnIndex, java.io.Reader x, long length)
Updates the designated column using the givenReader
object, which is the given number of characters long.void
updateClob(int columnIndex, java.sql.Clob x)
Updates the designated column with ajava.sql.Clob
value.void
updateClob(java.lang.String columnLabel, java.io.Reader reader)
Updates the designated column using the givenReader
object.void
updateClob(java.lang.String columnName, java.io.Reader x, long length)
Updates the designated column using the givenReader
object, which is the given number of characters long.void
updateClob(java.lang.String columnLabel, java.sql.Clob x)
Updates the designated column with ajava.sql.Clob
value.private void
updateColumn(int column, java.lang.Object value)
private void
updateColumnInfoFromCache()
void
updateDate(int column, java.sql.Date x)
void
updateDate(java.lang.String columnName, java.sql.Date x)
void
updateDouble(int column, double x)
void
updateDouble(java.lang.String columnName, double x)
void
updateFloat(int column, float x)
void
updateFloat(java.lang.String columnName, float x)
void
updateInt(int column, int x)
void
updateInt(java.lang.String columnName, int x)
void
updateLong(int column, long x)
void
updateLong(java.lang.String columnName, long x)
void
updateNCharacterStream(int columnIndex, java.io.Reader x)
void
updateNCharacterStream(int columnIndex, java.io.Reader x, long length)
void
updateNCharacterStream(java.lang.String columnName, java.io.Reader x)
void
updateNCharacterStream(java.lang.String columnName, java.io.Reader x, long length)
void
updateNClob(int columnIndex, java.io.Reader reader)
void
updateNClob(int columnIndex, java.io.Reader x, long length)
Updates the designated column with a java.sql.NClob value.void
updateNClob(int columnIndex, java.sql.NClob nClob)
void
updateNClob(java.lang.String columnName, java.io.InputStream x, long length)
Updates the designated column with a java.sql.NClob value.void
updateNClob(java.lang.String columnName, java.io.Reader reader)
void
updateNClob(java.lang.String columnName, java.io.Reader x, long length)
Updates the designated column with a java.sql.NClob value.void
updateNClob(java.lang.String columnName, java.sql.NClob nClob)
void
updateNString(int columnIndex, java.lang.String nString)
void
updateNString(java.lang.String columnName, java.lang.String nString)
void
updateNull(int column)
void
updateNull(java.lang.String columnName)
void
updateObject(int column, java.lang.Object x)
void
updateObject(int column, java.lang.Object x, int scale)
void
updateObject(java.lang.String columnName, java.lang.Object x)
void
updateObject(java.lang.String columnName, java.lang.Object x, int scale)
void
updateRef(int columnIndex, java.sql.Ref x)
void
updateRef(java.lang.String columnName, java.sql.Ref x)
void
updateRow()
void
updateRowId(int columnIndex, java.sql.RowId x)
void
updateRowId(java.lang.String columnName, java.sql.RowId x)
private boolean
updateRowX()
void
updateShort(int column, short x)
void
updateShort(java.lang.String columnName, short x)
void
updateSQLXML(int columnIndex, java.sql.SQLXML xmlObject)
void
updateSQLXML(java.lang.String columnName, java.sql.SQLXML xmlObject)
void
updateString(int column, java.lang.String x)
void
updateString(java.lang.String columnName, java.lang.String x)
void
updateTime(int column, java.sql.Time x)
void
updateTime(java.lang.String columnName, java.sql.Time x)
void
updateTimestamp(int column, java.sql.Timestamp x)
void
updateTimestamp(java.lang.String columnName, java.sql.Timestamp x)
private void
useStreamOrLOB(int columnIndex)
Mark a column as already having a stream or LOB accessed from it.private boolean
wasNonNullSensitiveUpdate(int column)
boolean
wasNull()
private boolean
wasNullSensitiveUpdate(int column)
(package private) void
writeClose()
private boolean
writeCloseAndAutoCommit()
abstract void
writeCursorClose_(Section section)
private void
writeDeleteRow()
abstract void
writeFetch_(Section section)
private void
writeInsertRow(boolean chainedWritesFollowingSetLob)
abstract void
writePositioningFetch_(Section section, int orientation, long rowToFetch)
abstract void
writeScrollableFetch_(Section section, int fetchSize, int orientation, long rowToFetch, boolean resetQueryBlocks)
private void
writeUpdateRow(boolean chainedWritesFollowingSetLob)
-
-
-
Field Detail
-
statement_
public ClientStatement statement_
-
outerStatement_
ClientStatement outerStatement_
-
resultSetMetaData_
public ColumnMetaData resultSetMetaData_
-
warnings_
private SqlWarning warnings_
-
cursor_
public Cursor cursor_
-
lobState
private LOBStateTracker lobState
Tracker object for LOB state, used to free locators on the server.
-
agent_
protected Agent agent_
-
generatedSection_
public Section generatedSection_
-
currentStream
private CloseFilterInputStream currentStream
-
currentReader
private java.io.Reader currentReader
-
connection_
private final ClientConnection connection_
-
scrollOrientation_relative__
public static final int scrollOrientation_relative__
- See Also:
- Constant Field Values
-
scrollOrientation_absolute__
public static final int scrollOrientation_absolute__
- See Also:
- Constant Field Values
-
scrollOrientation_after__
public static final int scrollOrientation_after__
- See Also:
- Constant Field Values
-
scrollOrientation_before__
public static final int scrollOrientation_before__
- See Also:
- Constant Field Values
-
scrollOrientation_prior__
private static final int scrollOrientation_prior__
- See Also:
- Constant Field Values
-
scrollOrientation_first__
private static final int scrollOrientation_first__
- See Also:
- Constant Field Values
-
scrollOrientation_last__
private static final int scrollOrientation_last__
- See Also:
- Constant Field Values
-
scrollOrientation_current__
private static final int scrollOrientation_current__
- See Also:
- Constant Field Values
-
scrollOrientation_next__
private static final int scrollOrientation_next__
- See Also:
- Constant Field Values
-
sensitivity_unknown__
public static final int sensitivity_unknown__
- See Also:
- Constant Field Values
-
sensitivity_insensitive__
public static final int sensitivity_insensitive__
- See Also:
- Constant Field Values
-
sensitivity_sensitive_static__
public static final int sensitivity_sensitive_static__
- See Also:
- Constant Field Values
-
sensitivity_sensitive_dynamic__
public static final int sensitivity_sensitive_dynamic__
- See Also:
- Constant Field Values
-
WAS_NULL
private static final int WAS_NULL
- See Also:
- Constant Field Values
-
WAS_NOT_NULL
private static final int WAS_NOT_NULL
- See Also:
- Constant Field Values
-
WAS_NULL_UNSET
private static final int WAS_NULL_UNSET
- See Also:
- Constant Field Values
-
DDM_RETURN_CALLER
private static final byte DDM_RETURN_CALLER
- See Also:
- Constant Field Values
-
DDM_RETURN_CLIENT
private static final byte DDM_RETURN_CLIENT
- See Also:
- Constant Field Values
-
wasNull_
private int wasNull_
-
rsReturnability_
private byte rsReturnability_
-
openOnClient_
boolean openOnClient_
-
openOnServer_
public boolean openOnServer_
-
queryTerminatingSqlca_
public Sqlca queryTerminatingSqlca_
-
autoCommitted_
boolean autoCommitted_
-
isValidCursorPosition_
private boolean isValidCursorPosition_
-
savedIsValidCursorPosition_
private boolean savedIsValidCursorPosition_
-
cursorHold_
public boolean cursorHold_
-
queryInstanceIdentifier_
public long queryInstanceIdentifier_
-
resultSetType_
public int resultSetType_
-
resultSetConcurrency_
int resultSetConcurrency_
-
resultSetHoldability_
int resultSetHoldability_
-
scrollable_
public boolean scrollable_
-
sensitivity_
public int sensitivity_
-
isRowsetCursor_
public boolean isRowsetCursor_
-
isBeforeFirst_
private boolean isBeforeFirst_
-
isAfterLast_
private boolean isAfterLast_
-
isFirst_
private boolean isFirst_
-
isLast_
private boolean isLast_
-
rowsetSqlca_
public Sqlca[] rowsetSqlca_
-
suggestedFetchSize_
protected int suggestedFetchSize_
-
fetchSize_
public int fetchSize_
-
fetchDirection_
private int fetchDirection_
-
rowCount_
private long rowCount_
-
absolutePosition_
private long absolutePosition_
-
firstRowInRowset_
private long firstRowInRowset_
-
lastRowInRowset_
private long lastRowInRowset_
-
currentRowInRowset_
private long currentRowInRowset_
-
isOnInsertRow_
private boolean isOnInsertRow_
-
isOnCurrentRow_
private boolean isOnCurrentRow_
-
rowsReceivedInCurrentRowset_
public int rowsReceivedInCurrentRowset_
-
rowsYetToBeReceivedForRowset_
public int rowsYetToBeReceivedForRowset_
-
updatedColumns_
private java.lang.Object[] updatedColumns_
-
columnUpdated_
private boolean[] columnUpdated_
-
preparedStatementForUpdate_
private ClientPreparedStatement preparedStatementForUpdate_
-
preparedStatementForDelete_
private ClientPreparedStatement preparedStatementForDelete_
-
preparedStatementForInsert_
private ClientPreparedStatement preparedStatementForInsert_
-
cursorUnpositionedOnServer_
private boolean cursorUnpositionedOnServer_
-
maxRows_
private long maxRows_
-
columnUsedFlags_
private boolean[] columnUsedFlags_
Indicates 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.
-
listenToUnitOfWork_
private boolean listenToUnitOfWork_
-
-
Constructor Detail
-
ClientResultSet
protected ClientResultSet(Agent agent, ClientStatement statement, Cursor cursor, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
-
-
Method Detail
-
next
public final boolean next() throws java.sql.SQLException
- Specified by:
next
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
nextX
boolean nextX() throws SqlException
- Throws:
SqlException
-
close
public void close() throws java.sql.SQLException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
closeX
public final void closeX() throws SqlException
- Throws:
SqlException
-
closeStatementOnCompletion
private void closeStatementOnCompletion()
Close Statement if it is set to closeOnCompletion
-
nullDataForGC
private void nullDataForGC()
-
flowCloseAndAutoCommitIfNotAutoCommitted
private void flowCloseAndAutoCommitIfNotAutoCommitted() throws SqlException
- Throws:
SqlException
-
writeCloseAndAutoCommit
private boolean writeCloseAndAutoCommit() throws SqlException
- Throws:
SqlException
-
readCloseAndAutoCommit
private void readCloseAndAutoCommit(boolean readAutoCommit) throws SqlException
- Throws:
SqlException
-
writeClose
void writeClose() throws SqlException
- Throws:
SqlException
-
readClose
void readClose() throws SqlException
- Throws:
SqlException
-
readAutoCommitIfNotAutoCommitted
private void readAutoCommitIfNotAutoCommitted() throws SqlException
- Throws:
SqlException
-
wasNull
public boolean wasNull() throws java.sql.SQLException
- Specified by:
wasNull
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBoolean
public boolean getBoolean(int column) throws java.sql.SQLException
- Specified by:
getBoolean
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getByte
public byte getByte(int column) throws java.sql.SQLException
- Specified by:
getByte
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getShort
public short getShort(int column) throws java.sql.SQLException
- Specified by:
getShort
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getInt
public int getInt(int column) throws java.sql.SQLException
- Specified by:
getInt
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getLong
public long getLong(int column) throws java.sql.SQLException
- Specified by:
getLong
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getFloat
public float getFloat(int column) throws java.sql.SQLException
- Specified by:
getFloat
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getDouble
public double getDouble(int column) throws java.sql.SQLException
- Specified by:
getDouble
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBigDecimal
public java.math.BigDecimal getBigDecimal(int column, int scale) throws java.sql.SQLException
Deprecated.- Specified by:
getBigDecimal
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBigDecimal
public java.math.BigDecimal getBigDecimal(int column) throws java.sql.SQLException
- Specified by:
getBigDecimal
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getDate
public java.sql.Date getDate(int column, java.util.Calendar cal) throws java.sql.SQLException
- Specified by:
getDate
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getDate
public java.sql.Date getDate(int column) throws java.sql.SQLException
- Specified by:
getDate
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getTime
public java.sql.Time getTime(int column, java.util.Calendar cal) throws java.sql.SQLException
- Specified by:
getTime
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getTime
public java.sql.Time getTime(int column) throws java.sql.SQLException
- Specified by:
getTime
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getTimestamp
public java.sql.Timestamp getTimestamp(int column, java.util.Calendar calendar) throws java.sql.SQLException
- Specified by:
getTimestamp
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getTimestamp
public java.sql.Timestamp getTimestamp(int column) throws java.sql.SQLException
- Specified by:
getTimestamp
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
createCalendar
private static java.util.Calendar createCalendar(java.util.Date date)
Create a calendar with default locale and time zone.- Parameters:
date
- the initial time of the calendar- Returns:
- a calendar initialized to the specified time
-
convertFromDefaultCalendar
private java.sql.Date convertFromDefaultCalendar(java.sql.Date date, java.util.Calendar cal)
Convert a date originally set using the default calendar to a value representing the same date in a different calendar.- Parameters:
date
- the date to convertcal
- the calendar to convert it to- Returns:
- a date object that represents the date in
cal
-
convertFromDefaultCalendar
private java.sql.Time convertFromDefaultCalendar(java.sql.Time time, java.util.Calendar cal)
Convert a time originally set using the default calendar to a value representing the same time in a different calendar.- Parameters:
time
- the time to convertcal
- the calendar to convert it to- Returns:
- a time object that represents the time in
cal
-
convertFromDefaultCalendar
private java.sql.Timestamp convertFromDefaultCalendar(java.sql.Timestamp ts, java.util.Calendar cal)
Convert a timestamp originally set using the default calendar to a value representing the same timestamp in a different calendar.- Parameters:
ts
- the timestamp to convertcal
- the calendar to convert it to- Returns:
- a timestamp object that represents the timestamp in
cal
-
getString
public java.lang.String getString(int column) throws java.sql.SQLException
- Specified by:
getString
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBytes
public byte[] getBytes(int column) throws java.sql.SQLException
- Specified by:
getBytes
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBinaryStream
public java.io.InputStream getBinaryStream(int column) throws java.sql.SQLException
- Specified by:
getBinaryStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getAsciiStream
public java.io.InputStream getAsciiStream(int column) throws java.sql.SQLException
- Specified by:
getAsciiStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getUnicodeStream
public java.io.InputStream getUnicodeStream(int column) throws java.sql.SQLException
Deprecated.Retrieve the value of the specified column as a stream of two-byte Unicode characters. Deprecated in JDBC 2.0 and this method will just throw a feature not implemented exception.- Specified by:
getUnicodeStream
in interfacejava.sql.ResultSet
- Parameters:
column
- the column to retrieve as a Unicode stream- Throws:
java.sql.SQLException
- throws feature not implemented
-
getCharacterStream
public java.io.Reader getCharacterStream(int column) throws java.sql.SQLException
- Specified by:
getCharacterStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBlob
public java.sql.Blob getBlob(int column) throws java.sql.SQLException
- Specified by:
getBlob
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getClob
public java.sql.Clob getClob(int column) throws java.sql.SQLException
- Specified by:
getClob
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getRef
public java.sql.Ref getRef(int column) throws java.sql.SQLException
- Specified by:
getRef
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getArray
public java.sql.Array getArray(int column) throws java.sql.SQLException
- Specified by:
getArray
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getObject
public java.lang.Object getObject(int column) throws java.sql.SQLException
- Specified by:
getObject
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getObjectX
java.lang.Object getObjectX(int column) throws SqlException
- Throws:
SqlException
-
getObject
public java.lang.Object getObject(int column, java.util.Map map) throws java.sql.SQLException
- Specified by:
getObject
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
wasNonNullSensitiveUpdate
private boolean wasNonNullSensitiveUpdate(int column)
-
wasNullSensitiveUpdate
private boolean wasNullSensitiveUpdate(int column)
-
setWasNull
private void setWasNull(int column)
-
isNull
private boolean isNull(int column)
-
getBoolean
public final boolean getBoolean(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getBoolean
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getByte
public final byte getByte(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getByte
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getShort
public final short getShort(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getShort
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getInt
public final int getInt(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getInt
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getLong
public final long getLong(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getLong
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getFloat
public final float getFloat(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getFloat
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getDouble
public final double getDouble(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getDouble
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBigDecimal
public final java.math.BigDecimal getBigDecimal(java.lang.String columnName, int scale) throws java.sql.SQLException
Deprecated.- Specified by:
getBigDecimal
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBigDecimal
public final java.math.BigDecimal getBigDecimal(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getBigDecimal
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getDate
public final java.sql.Date getDate(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getDate
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getDate
public final java.sql.Date getDate(java.lang.String columnName, java.util.Calendar cal) throws java.sql.SQLException
- Specified by:
getDate
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getTime
public final java.sql.Time getTime(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getTime
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getTime
public final java.sql.Time getTime(java.lang.String columnName, java.util.Calendar cal) throws java.sql.SQLException
- Specified by:
getTime
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getTimestamp
public final java.sql.Timestamp getTimestamp(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getTimestamp
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getTimestamp
public final java.sql.Timestamp getTimestamp(java.lang.String columnName, java.util.Calendar cal) throws java.sql.SQLException
- Specified by:
getTimestamp
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getString
public final java.lang.String getString(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getString
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBytes
public final byte[] getBytes(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getBytes
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBinaryStream
public final java.io.InputStream getBinaryStream(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getBinaryStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getAsciiStream
public final java.io.InputStream getAsciiStream(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getAsciiStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getUnicodeStream
public final java.io.InputStream getUnicodeStream(java.lang.String columnName) throws java.sql.SQLException
Deprecated.- Specified by:
getUnicodeStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getCharacterStream
public final java.io.Reader getCharacterStream(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getCharacterStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getBlob
public final java.sql.Blob getBlob(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getBlob
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getClob
public final java.sql.Clob getClob(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getClob
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getArray
public final java.sql.Array getArray(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getArray
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getRef
public final java.sql.Ref getRef(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getRef
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getObject
public final java.lang.Object getObject(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getObject
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getObject
public final java.lang.Object getObject(java.lang.String columnName, java.util.Map map) throws java.sql.SQLException
- Specified by:
getObject
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getWarnings
public final java.sql.SQLWarning getWarnings() throws java.sql.SQLException
Returns the firstSQLWarning
reported on thisResultSet
object, ornull
if there are no warnings. Subsequent warnings are chained on the returned object.- Specified by:
getWarnings
in interfacejava.sql.ResultSet
- Returns:
- the first
SQLWarning
in the chain, ornull
if no warnings are reported - Throws:
java.sql.SQLException
- if a database error occurs or the result set is closed
-
clearWarnings
public final void clearWarnings() throws java.sql.SQLException
Clear all warnings on thisResultSet
and make subsequent calls togetWarnings()
returnnull
until a new warning is reported.- Specified by:
clearWarnings
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
- if a database error occurs or the result set is closed
-
clearWarningsX
private void clearWarningsX()
-
getCursorName
public java.lang.String getCursorName() throws java.sql.SQLException
- Specified by:
getCursorName
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getMetaData
public java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException
- Specified by:
getMetaData
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getMetaDataX
ColumnMetaData getMetaDataX() throws SqlException
- Throws:
SqlException
-
findColumn
public final int findColumn(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
findColumn
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
findColumnX
protected final int findColumnX(java.lang.String columnName, java.lang.String operation) throws SqlException
- Throws:
SqlException
-
isBeforeFirst
public boolean isBeforeFirst() throws java.sql.SQLException
- Specified by:
isBeforeFirst
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
isBeforeFirstX
private boolean isBeforeFirstX() throws SqlException
- Throws:
SqlException
-
isAfterLast
public boolean isAfterLast() throws java.sql.SQLException
- Specified by:
isAfterLast
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
isAfterLastX
private boolean isAfterLastX() throws SqlException
- Throws:
SqlException
-
isFirst
public boolean isFirst() throws java.sql.SQLException
- Specified by:
isFirst
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
isFirstX
private boolean isFirstX()
-
isLast
public boolean isLast() throws java.sql.SQLException
- Specified by:
isLast
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
isLastX
private boolean isLastX() throws SqlException
- Throws:
SqlException
-
beforeFirst
public void beforeFirst() throws java.sql.SQLException
- Specified by:
beforeFirst
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
beforeFirstX
private void beforeFirstX() throws SqlException
- Throws:
SqlException
-
afterLast
public void afterLast() throws java.sql.SQLException
- Specified by:
afterLast
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
afterLastX
private void afterLastX() throws SqlException
- Throws:
SqlException
-
first
public boolean first() throws java.sql.SQLException
- Specified by:
first
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
firstX
private boolean firstX() throws SqlException
- Throws:
SqlException
-
last
public boolean last() throws java.sql.SQLException
- Specified by:
last
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
lastX
private boolean lastX() throws SqlException
- Throws:
SqlException
-
getRow
public int getRow() throws java.sql.SQLException
- Specified by:
getRow
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getRowX
private int getRowX() throws SqlException
- Throws:
SqlException
-
absolute
public boolean absolute(int row) throws java.sql.SQLException
- Specified by:
absolute
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
absoluteX
private boolean absoluteX(int row) throws SqlException
- Throws:
SqlException
-
relative
public boolean relative(int rows) throws java.sql.SQLException
- Specified by:
relative
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
relativeX
private boolean relativeX(int rows) throws SqlException
- Throws:
SqlException
-
previous
public boolean previous() throws java.sql.SQLException
- Specified by:
previous
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
previousX
private boolean previousX() throws SqlException
- Throws:
SqlException
-
setFetchDirection
public void setFetchDirection(int direction) throws java.sql.SQLException
- Specified by:
setFetchDirection
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getFetchDirection
public int getFetchDirection() throws java.sql.SQLException
- Specified by:
getFetchDirection
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
setFetchSize
public void setFetchSize(int rows) throws java.sql.SQLException
- Specified by:
setFetchSize
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getFetchSize
public int getFetchSize() throws java.sql.SQLException
- Specified by:
getFetchSize
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getType
public int getType() throws java.sql.SQLException
- Specified by:
getType
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getConcurrency
public int getConcurrency() throws java.sql.SQLException
- Specified by:
getConcurrency
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
rowUpdated
public boolean rowUpdated() throws java.sql.SQLException
- Specified by:
rowUpdated
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
rowInserted
public boolean rowInserted() throws java.sql.SQLException
- Specified by:
rowInserted
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
rowDeleted
public boolean rowDeleted() throws java.sql.SQLException
- Specified by:
rowDeleted
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNull
public void updateNull(int column) throws java.sql.SQLException
- Specified by:
updateNull
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateBoolean
public void updateBoolean(int column, boolean x) throws java.sql.SQLException
- Specified by:
updateBoolean
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateByte
public void updateByte(int column, byte x) throws java.sql.SQLException
- Specified by:
updateByte
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateShort
public void updateShort(int column, short x) throws java.sql.SQLException
- Specified by:
updateShort
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateInt
public void updateInt(int column, int x) throws java.sql.SQLException
- Specified by:
updateInt
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateLong
public void updateLong(int column, long x) throws java.sql.SQLException
- Specified by:
updateLong
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateFloat
public void updateFloat(int column, float x) throws java.sql.SQLException
- Specified by:
updateFloat
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateDouble
public void updateDouble(int column, double x) throws java.sql.SQLException
- Specified by:
updateDouble
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateBigDecimal
public void updateBigDecimal(int column, java.math.BigDecimal x) throws java.sql.SQLException
- Specified by:
updateBigDecimal
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateDate
public void updateDate(int column, java.sql.Date x) throws java.sql.SQLException
- Specified by:
updateDate
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateTime
public void updateTime(int column, java.sql.Time x) throws java.sql.SQLException
- Specified by:
updateTime
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateTimestamp
public void updateTimestamp(int column, java.sql.Timestamp x) throws java.sql.SQLException
- Specified by:
updateTimestamp
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateString
public void updateString(int column, java.lang.String x) throws java.sql.SQLException
- Specified by:
updateString
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateBytes
public void updateBytes(int column, byte[] x) throws java.sql.SQLException
- Specified by:
updateBytes
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateBinaryStream
public void updateBinaryStream(int column, java.io.InputStream x, int length) throws java.sql.SQLException
- Specified by:
updateBinaryStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateAsciiStream
public void updateAsciiStream(int column, java.io.InputStream x, int length) throws java.sql.SQLException
- Specified by:
updateAsciiStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateCharacterStream
public void updateCharacterStream(int column, java.io.Reader x, int length) throws java.sql.SQLException
- Specified by:
updateCharacterStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateObject
public void updateObject(int column, java.lang.Object x, int scale) throws java.sql.SQLException
- Specified by:
updateObject
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateObject
public void updateObject(int column, java.lang.Object x) throws java.sql.SQLException
- Specified by:
updateObject
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNCharacterStream
public void updateNCharacterStream(int columnIndex, java.io.Reader x) throws java.sql.SQLException
- Specified by:
updateNCharacterStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNClob
public void updateNClob(int columnIndex, java.io.Reader reader) throws java.sql.SQLException
- Specified by:
updateNClob
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNull
public void updateNull(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
updateNull
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateBoolean
public void updateBoolean(java.lang.String columnName, boolean x) throws java.sql.SQLException
- Specified by:
updateBoolean
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateByte
public void updateByte(java.lang.String columnName, byte x) throws java.sql.SQLException
- Specified by:
updateByte
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateShort
public void updateShort(java.lang.String columnName, short x) throws java.sql.SQLException
- Specified by:
updateShort
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateInt
public void updateInt(java.lang.String columnName, int x) throws java.sql.SQLException
- Specified by:
updateInt
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateLong
public void updateLong(java.lang.String columnName, long x) throws java.sql.SQLException
- Specified by:
updateLong
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateFloat
public void updateFloat(java.lang.String columnName, float x) throws java.sql.SQLException
- Specified by:
updateFloat
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateDouble
public void updateDouble(java.lang.String columnName, double x) throws java.sql.SQLException
- Specified by:
updateDouble
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateBigDecimal
public void updateBigDecimal(java.lang.String columnName, java.math.BigDecimal x) throws java.sql.SQLException
- Specified by:
updateBigDecimal
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateDate
public void updateDate(java.lang.String columnName, java.sql.Date x) throws java.sql.SQLException
- Specified by:
updateDate
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateTime
public void updateTime(java.lang.String columnName, java.sql.Time x) throws java.sql.SQLException
- Specified by:
updateTime
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateTimestamp
public void updateTimestamp(java.lang.String columnName, java.sql.Timestamp x) throws java.sql.SQLException
- Specified by:
updateTimestamp
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateString
public void updateString(java.lang.String columnName, java.lang.String x) throws java.sql.SQLException
- Specified by:
updateString
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateBytes
public void updateBytes(java.lang.String columnName, byte[] x) throws java.sql.SQLException
- Specified by:
updateBytes
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateBinaryStream
public void updateBinaryStream(java.lang.String columnName, java.io.InputStream x, int length) throws java.sql.SQLException
- Specified by:
updateBinaryStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateAsciiStream
public void updateAsciiStream(java.lang.String columnName, java.io.InputStream x, int length) throws java.sql.SQLException
- Specified by:
updateAsciiStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateCharacterStream
public void updateCharacterStream(java.lang.String columnName, java.io.Reader x, int length) throws java.sql.SQLException
- Specified by:
updateCharacterStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateObject
public void updateObject(java.lang.String columnName, java.lang.Object x, int scale) throws java.sql.SQLException
- Specified by:
updateObject
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateObject
public void updateObject(java.lang.String columnName, java.lang.Object x) throws java.sql.SQLException
- Specified by:
updateObject
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNCharacterStream
public void updateNCharacterStream(java.lang.String columnName, java.io.Reader x) throws java.sql.SQLException
- Specified by:
updateNCharacterStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNClob
public void updateNClob(java.lang.String columnName, java.io.Reader reader) throws java.sql.SQLException
- Specified by:
updateNClob
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
insertRow
public void insertRow() throws java.sql.SQLException
- Specified by:
insertRow
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
insertRowX
private void insertRowX() throws SqlException
- Throws:
SqlException
-
updateRow
public void updateRow() throws java.sql.SQLException
- Specified by:
updateRow
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateRowX
private boolean updateRowX() throws SqlException
- Throws:
SqlException
-
deleteRow
public void deleteRow() throws java.sql.SQLException
- Specified by:
deleteRow
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
deleteRowX
private void deleteRowX() throws SqlException
- Throws:
SqlException
-
refreshRow
public void refreshRow() throws java.sql.SQLException
- Specified by:
refreshRow
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
refreshRowX
private void refreshRowX() throws SqlException
- Throws:
SqlException
-
cancelRowUpdates
public void cancelRowUpdates() throws java.sql.SQLException
- Specified by:
cancelRowUpdates
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
moveToInsertRow
public void moveToInsertRow() throws java.sql.SQLException
- Specified by:
moveToInsertRow
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
moveToCurrentRow
public void moveToCurrentRow() throws java.sql.SQLException
- Specified by:
moveToCurrentRow
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
moveToCurrentRowX
private void moveToCurrentRowX() throws SqlException
Moves off the insert row if positioned there, and checks the current row for releasable LOB locators if positioned on a valid data row.- Throws:
SqlException
- if releasing a LOB locator fails
-
getStatement
public java.sql.Statement getStatement() throws java.sql.SQLException
Retrieves theStatement
object that produced this object, ornull
if theResultSet
was not produced by aStatement
object.- Specified by:
getStatement
in interfacejava.sql.ResultSet
- Returns:
- the
Statement
that produced this object ornull
- Throws:
java.sql.SQLException
- if a database error occurs or the result set is closed
-
getURL
public java.net.URL getURL(int columnIndex) throws java.sql.SQLException
- Specified by:
getURL
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getURL
public java.net.URL getURL(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getURL
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateRef
public void updateRef(int columnIndex, java.sql.Ref x) throws java.sql.SQLException
- Specified by:
updateRef
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateRef
public void updateRef(java.lang.String columnName, java.sql.Ref x) throws java.sql.SQLException
- Specified by:
updateRef
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateBlob
public void updateBlob(int columnIndex, java.sql.Blob x) throws java.sql.SQLException
Updates the designated column with ajava.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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateBlob
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
java.sql.SQLException
- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateBlob
public void updateBlob(java.lang.String columnName, java.sql.Blob x) throws java.sql.SQLException
Updates the designated column with ajava.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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateBlob
in interfacejava.sql.ResultSet
- 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:
java.sql.SQLException
- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateBlob
public void updateBlob(int columnIndex, java.io.InputStream x, long length) throws java.sql.SQLException
Updates the designated column using the given input stream, which will have the specified number of bytes. 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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateBlob
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- An object that contains the data to set the parameter value to.length
- the number of bytes in the parameter data.- Throws:
java.sql.SQLException
- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateBlob
public void updateBlob(java.lang.String columnName, java.io.InputStream x, long length) throws java.sql.SQLException
Updates the designated column using the given input stream, which will have the specified number of bytes. 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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateBlob
in interfacejava.sql.ResultSet
- 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.length
- the number of bytes in the parameter data.- Throws:
java.sql.SQLException
- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateArray
public void updateArray(int columnIndex, java.sql.Array x) throws java.sql.SQLException
- Specified by:
updateArray
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateArray
public void updateArray(java.lang.String columnName, java.sql.Array x) throws java.sql.SQLException
- Specified by:
updateArray
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
repositionScrollableResultSetBeforeJDBC1PositionedUpdateDelete
boolean repositionScrollableResultSetBeforeJDBC1PositionedUpdateDelete() throws SqlException
- Throws:
SqlException
-
flowPositioningFetch
private void flowPositioningFetch(int scrollOrientation, int rowToFetch) throws DisconnectException
- Throws:
DisconnectException
-
positionToCurrentRowAndUpdate
private void positionToCurrentRowAndUpdate() throws SqlException
- Throws:
SqlException
-
insert
private void insert() throws SqlException
- Throws:
SqlException
-
update
private void update() throws SqlException
- Throws:
SqlException
-
positionToCurrentRowAndDelete
private void positionToCurrentRowAndDelete() throws SqlException
- Throws:
SqlException
-
delete
private void delete() throws SqlException
- Throws:
SqlException
-
setRowsetAfterLastEvent
private void setRowsetAfterLastEvent() throws SqlException
- Throws:
SqlException
-
setRowsetBeforeFirstEvent
private void setRowsetBeforeFirstEvent() throws SqlException
- Throws:
SqlException
-
setRowsetNoRowsEvent
private void setRowsetNoRowsEvent()
-
isServersCursorPositionBeforeFirst
private boolean isServersCursorPositionBeforeFirst() throws SqlException
- Throws:
SqlException
-
isServerCursorPositionAfterLast
private boolean isServerCursorPositionAfterLast()
-
setValidCursorPosition
public void setValidCursorPosition(boolean isValidCursorPosition)
-
moveToAfterLast
private void moveToAfterLast() throws DisconnectException
- Throws:
DisconnectException
-
moveToBeforeFirst
private void moveToBeforeFirst() throws DisconnectException
- Throws:
DisconnectException
-
writeInsertRow
private void writeInsertRow(boolean chainedWritesFollowingSetLob) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
writeUpdateRow
private void writeUpdateRow(boolean chainedWritesFollowingSetLob) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
writeDeleteRow
private void writeDeleteRow() throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
readInsertRow
private void readInsertRow() throws DisconnectException, SqlException
- Throws:
DisconnectException
SqlException
-
readUpdateRow
private void readUpdateRow() throws DisconnectException, SqlException
- Throws:
DisconnectException
SqlException
-
readDeleteRow
private void readDeleteRow() throws DisconnectException, SqlException
- Throws:
DisconnectException
SqlException
-
listenToUnitOfWork
public void listenToUnitOfWork()
- Specified by:
listenToUnitOfWork
in interfaceUnitOfWorkListener
-
completeLocalCommit
public void completeLocalCommit(java.util.Iterator listenerIterator)
- Specified by:
completeLocalCommit
in interfaceUnitOfWorkListener
-
completeLocalRollback
public void completeLocalRollback(java.util.Iterator listenerIterator)
- Specified by:
completeLocalRollback
in interfaceUnitOfWorkListener
-
nullOutReferenceInStatement
private void nullOutReferenceInStatement()
-
markClosed
void markClosed()
Mark this ResultSet as closed. The ResultSet will not be removed from the commit and rollback listeners list inConnection
.
-
markClosed
void markClosed(boolean removeListener)
Mark this ResultSet as closed.- Parameters:
removeListener
- if true the ResultSet will be removed from the commit and rollback listeners list inConnection
.
-
markClosedOnServer
public void markClosedOnServer()
Mark this ResultSet as closed on the server.
-
markAutoCommitted
void markAutoCommitted()
-
earlyCloseComplete
public void earlyCloseComplete(Sqlca sqlca)
- Specified by:
earlyCloseComplete
in interfaceResultSetCallbackInterface
-
completeSqlca
public int completeSqlca(Sqlca sqlca)
- Specified by:
completeSqlca
in interfaceResultSetCallbackInterface
-
setRowCountEvent
public void setRowCountEvent(long rowCount) throws DisconnectException
- Throws:
DisconnectException
-
accumulateWarning
public void accumulateWarning(SqlWarning e)
- Specified by:
accumulateWarning
in interfaceResultSetCallbackInterface
-
rowCountIsUnknown
boolean rowCountIsUnknown()
-
updateColumn
private void updateColumn(int column, java.lang.Object value)
-
buildInsertString
private java.lang.String buildInsertString() throws SqlException
- Throws:
SqlException
-
buildUpdateString
private java.lang.String buildUpdateString() throws SqlException
- Throws:
SqlException
-
buildDeleteString
private java.lang.String buildDeleteString() throws SqlException
- Throws:
SqlException
-
getTableName
private java.lang.String getTableName() throws SqlException
- Throws:
SqlException
-
getServerCursorName
private java.lang.String getServerCursorName() throws SqlException
- Throws:
SqlException
-
getPreparedStatementForInsert
private void getPreparedStatementForInsert() throws SqlException
- Throws:
SqlException
-
getPreparedStatementForUpdate
private void getPreparedStatementForUpdate() throws SqlException
- Throws:
SqlException
-
getPreparedStatementForDelete
private void getPreparedStatementForDelete() throws SqlException
- Throws:
SqlException
-
resetUpdatedColumnsForInsert
private final void resetUpdatedColumnsForInsert()
-
resetUpdatedColumns
private final void resetUpdatedColumns()
-
getRowUncast
private final long getRowUncast()
-
checkGetterPreconditions
private final void checkGetterPreconditions(int column, java.lang.String operation) throws SqlException
- Throws:
SqlException
-
checkUpdatePreconditions
private final void checkUpdatePreconditions(int column, java.lang.String operation) throws SqlException
- Throws:
SqlException
-
checkForValidColumnIndex
private void checkForValidColumnIndex(int column) throws SqlException
- Throws:
SqlException
-
checkForClosedResultSet
protected final void checkForClosedResultSet(java.lang.String operation) throws SqlException
- Throws:
SqlException
-
checkForUpdatableResultSet
private final void checkForUpdatableResultSet(java.lang.String operation) throws SqlException
- Throws:
SqlException
-
checkForValidCursorPosition
private final void checkForValidCursorPosition() throws SqlException
- Throws:
SqlException
-
checkPositionedOnPlainRow
private final void checkPositionedOnPlainRow() throws SqlException
- Throws:
SqlException
-
checkThatResultSetTypeIsScrollable
private final void checkThatResultSetTypeIsScrollable() throws SqlException
- Throws:
SqlException
-
checkThatResultSetIsNotDynamic
private final void checkThatResultSetIsNotDynamic() throws SqlException
- Throws:
SqlException
-
resultSetContainsNoRows
private boolean resultSetContainsNoRows() throws SqlException
- Throws:
SqlException
-
rowIsInCurrentRowset
private boolean rowIsInCurrentRowset(long rowNumber, int orientation) throws SqlException
- Throws:
SqlException
-
rowIsInCurrentRowset
private boolean rowIsInCurrentRowset(long rowNumber)
-
markPositionedUpdateDeletePreparedStatementsClosed
private void markPositionedUpdateDeletePreparedStatementsClosed()
-
updateColumnInfoFromCache
private void updateColumnInfoFromCache()
-
checkAndThrowReceivedQueryTerminatingException
protected final void checkAndThrowReceivedQueryTerminatingException() throws SqlException
- Throws:
SqlException
-
parseScrollableRowset
void parseScrollableRowset() throws SqlException
- Throws:
SqlException
-
getRSReturnability
public byte getRSReturnability()
-
setRSReturnability
public void setRSReturnability(byte rsReturnability)
-
getRowCount
protected void getRowCount() throws SqlException
- Throws:
SqlException
-
flowGetRowset
private void flowGetRowset(int orientation, long rowNumber) throws SqlException
- Throws:
SqlException
-
getNextRowset
private boolean getNextRowset() throws SqlException
- Throws:
SqlException
-
adjustNextRowset
private void adjustNextRowset()
-
getPreviousRowset
private boolean getPreviousRowset() throws SqlException
- Throws:
SqlException
-
adjustPreviousRowset
private void adjustPreviousRowset(int orientation, long rowNumber, boolean isAfterLastRow)
-
getAbsoluteRowset
private boolean getAbsoluteRowset(long row) throws SqlException
- Throws:
SqlException
-
adjustAbsoluteRowset
private void adjustAbsoluteRowset(long rowNumber)
-
getRelativeRowset
private boolean getRelativeRowset(long rows) throws SqlException
- Throws:
SqlException
-
adjustRelativeRowset
private void adjustRelativeRowset(long rowNumber)
-
getFirstRowset
private boolean getFirstRowset() throws SqlException
- Throws:
SqlException
-
adjustFirstRowset
private void adjustFirstRowset()
-
getLastRowset
private boolean getLastRowset(long row) throws SqlException
- Throws:
SqlException
-
adjustLastRowset
private void adjustLastRowset(long row)
-
getRefreshRowset
private boolean getRefreshRowset() throws SqlException
- Throws:
SqlException
-
adjustRefreshRowset
private void adjustRefreshRowset()
-
setAbsolutePositionBasedOnAllRowsReceived
private void setAbsolutePositionBasedOnAllRowsReceived()
-
writeFetch_
public abstract void writeFetch_(Section section) throws SqlException
- Throws:
SqlException
-
readFetch_
public abstract void readFetch_() throws SqlException
- Throws:
SqlException
-
writeScrollableFetch_
public abstract void writeScrollableFetch_(Section section, int fetchSize, int orientation, long rowToFetch, boolean resetQueryBlocks) throws SqlException
- Throws:
SqlException
-
readScrollableFetch_
public abstract void readScrollableFetch_() throws SqlException
- Throws:
SqlException
-
writePositioningFetch_
public abstract void writePositioningFetch_(Section section, int orientation, long rowToFetch) throws SqlException
- Throws:
SqlException
-
readPositioningFetch_
public abstract void readPositioningFetch_() throws SqlException
- Throws:
SqlException
-
writeCursorClose_
public abstract void writeCursorClose_(Section section) throws SqlException
- Throws:
SqlException
-
readCursorClose_
public abstract void readCursorClose_() throws SqlException
- Throws:
SqlException
-
parseRowset_
protected abstract void parseRowset_() throws SqlException
- Throws:
SqlException
-
setFetchSize_
public abstract void setFetchSize_(int rows)
-
preClose_
protected abstract void preClose_() throws SqlException
Method that is invoked bycloseX()
before the result set is actually being closed. Subclasses may override this method if work needs to be done before closing.- Throws:
SqlException
-
getConnectionCallbackInterface
public ConnectionCallbackInterface getConnectionCallbackInterface()
- Specified by:
getConnectionCallbackInterface
in interfaceResultSetCallbackInterface
-
getStatementCallbackInterface
public StatementCallbackInterface getStatementCallbackInterface()
- Specified by:
getStatementCallbackInterface
in interfaceResultSetCallbackInterface
-
expandRowsetSqlca
public void expandRowsetSqlca()
-
checkRowsetSqlca
private final int checkRowsetSqlca() throws SqlException
- Throws:
SqlException
-
checkRowsetSqlca
private final int checkRowsetSqlca(int row) throws SqlException
- Throws:
SqlException
-
resetRowsetFlags
private void resetRowsetFlags()
-
resetRowsetSqlca
private void resetRowsetSqlca()
-
createCloseFilterInputStream
private CloseFilterInputStream createCloseFilterInputStream(java.io.InputStream is) throws SqlException
- Throws:
SqlException
-
closeOpenStreams
private void closeOpenStreams() throws SqlException
Closes the current stream, if there is one.Note that streams are implicitly closed when the next value is fetched.
- Throws:
SqlException
- if closing the stream fails
-
useStreamOrLOB
private void useStreamOrLOB(int columnIndex) throws SqlException
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:
java.sql.SQLException
- if the column has already been accessedSqlException
-
checkLOBMultiCall
private void checkLOBMultiCall(int columnIndex) throws SqlException
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
-
unuseStreamsAndLOBs
private void unuseStreamsAndLOBs()
Clears the flags for used columns, typically invoked when changing the result set position.
-
jdbc3MethodNotSupported
private java.sql.SQLException jdbc3MethodNotSupported()
-
getHoldability
public final int getHoldability() throws java.sql.SQLException
Retrieves the holdability for thisResultSet
object.- Specified by:
getHoldability
in interfacejava.sql.ResultSet
- Returns:
- either
ResultSet.HOLD_CURSORS_OVER_COMMIT
orResultSet.CLOSE_CURSORS_AT_COMMIT
- Throws:
java.sql.SQLException
- if a database error occurs
-
isClosed
public final boolean isClosed() throws java.sql.SQLException
Checks whether thisResultSet
object has been closed, either automatically or becauseclose()
has been called.- Specified by:
isClosed
in interfacejava.sql.ResultSet
- Returns:
true
if theResultSet
is closed,false
otherwise- Throws:
java.sql.SQLException
- if a database error occurs
-
updateAsciiStream
public void updateAsciiStream(int columnIndex, java.io.InputStream x) throws java.sql.SQLException
Updates the designated column with an ascii 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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateAsciiStream
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
java.sql.SQLException
- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateAsciiStream
public void updateAsciiStream(int columnIndex, java.io.InputStream x, long length) throws java.sql.SQLException
Update a column with an ascii stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.- Specified by:
updateAsciiStream
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valuelength
- the length of the stream- Throws:
java.sql.SQLException
- if a database-access error occurs
-
updateBinaryStream
public void updateBinaryStream(int columnIndex, java.io.InputStream x) throws java.sql.SQLException
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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateBinaryStream
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
java.sql.SQLException
- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateBinaryStream
public void updateBinaryStream(int columnIndex, java.io.InputStream x, long length) throws java.sql.SQLException
Update a column with a binary stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.- Specified by:
updateBinaryStream
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valuelength
- the length of the stream- Throws:
java.sql.SQLException
- if a database-access error occurs
-
updateBlob
public void updateBlob(int columnIndex, java.io.InputStream x) throws java.sql.SQLException
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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateBlob
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
java.sql.SQLException
- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateCharacterStream
public void updateCharacterStream(int columnIndex, java.io.Reader reader) throws java.sql.SQLException
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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateCharacterStream
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...reader
- the new column value- Throws:
java.sql.SQLException
- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateCharacterStream
public void updateCharacterStream(int columnIndex, java.io.Reader x, long length) throws java.sql.SQLException
Update a column with a character stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.- Specified by:
updateCharacterStream
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valuelength
- the length of the stream- Throws:
java.sql.SQLException
- if a database-access error occurs
-
updateClob
public void updateClob(int columnIndex, java.io.Reader reader) throws java.sql.SQLException
Updates the designated column using the givenReader
object. The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion from UNICODE to 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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateClob
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...reader
- an object that contains the data to set the parameter value to.- Throws:
java.sql.SQLException
- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateAsciiStream
public void updateAsciiStream(java.lang.String columnName, java.io.InputStream x) throws java.sql.SQLException
Updates the designated column with an ascii 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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateAsciiStream
in interfacejava.sql.ResultSet
- 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:
java.sql.SQLException
- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateAsciiStream
public void updateAsciiStream(java.lang.String columnName, java.io.InputStream x, long length) throws java.sql.SQLException
Update a column with an ascii stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.- Specified by:
updateAsciiStream
in interfacejava.sql.ResultSet
- Parameters:
columnName
- the name of the columnx
- the new column valuelength
- of the stream- Throws:
java.sql.SQLException
- if a database-access error occurs
-
updateBinaryStream
public void updateBinaryStream(java.lang.String columnLabel, java.io.InputStream x) throws java.sql.SQLException
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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateBinaryStream
in interfacejava.sql.ResultSet
- Parameters:
columnLabel
- 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:
java.sql.SQLException
- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateBinaryStream
public void updateBinaryStream(java.lang.String columnName, java.io.InputStream x, long length) throws java.sql.SQLException
Update a column with a binary stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.- Specified by:
updateBinaryStream
in interfacejava.sql.ResultSet
- Parameters:
columnName
- the name of the columnx
- the new column valuelength
- of the stream- Throws:
java.sql.SQLException
- if a database-access error occurs
-
updateBlob
public void updateBlob(java.lang.String columnLabel, java.io.InputStream x) throws java.sql.SQLException
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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateBlob
in interfacejava.sql.ResultSet
- Parameters:
columnLabel
- 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:
java.sql.SQLException
- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateCharacterStream
public void updateCharacterStream(java.lang.String columnLabel, java.io.Reader reader) throws java.sql.SQLException
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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateCharacterStream
in interfacejava.sql.ResultSet
- Parameters:
columnLabel
- 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:
java.sql.SQLException
- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateCharacterStream
public void updateCharacterStream(java.lang.String columnName, java.io.Reader reader, long length) throws java.sql.SQLException
Update a column with a character stream value. The updateXXX() methods are used to update column values in the current row, or the insert row. The updateXXX() methods do not update the underlying database, instead the updateRow() or insertRow() methods are called to update the database.- Specified by:
updateCharacterStream
in interfacejava.sql.ResultSet
- Parameters:
columnName
- the name of the columnreader
- the new column valuelength
- length of the stream- Throws:
java.sql.SQLException
- if a database-access error occurs
-
updateClob
public void updateClob(java.lang.String columnLabel, java.io.Reader reader) throws java.sql.SQLException
Updates the designated column using the givenReader
object. The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion from UNICODE to 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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateClob
in interfacejava.sql.ResultSet
- Parameters:
columnLabel
- 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
- an object that contains the data to set the parameter value to.- Throws:
java.sql.SQLException
- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateClob
public void updateClob(int columnIndex, java.io.Reader x, long length) throws java.sql.SQLException
Updates the designated column using the givenReader
object, which is the given number of characters long. When a very large UNICODE value is input to aLONGVARCHAR
parameter, it may be more practical to send it via ajava.io.Reader
object. The JDBC driver will do any necessary conversion from UNICODE to 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 the
updateRow
orinsertRow
methods are called to update the database.- Specified by:
updateClob
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- An object that contains the data to set the parameter value to.length
- the number of characters in the parameter data.- Throws:
java.sql.SQLException
- if the columnIndex is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result setjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this method
-
updateClob
public void updateClob(java.lang.String columnName, java.io.Reader x, long length) throws java.sql.SQLException
Updates the designated column using the givenReader
object, which is the given number of characters long. When a very large UNICODE value is input to aLONGVARCHAR
parameter, it may be more practical to send it via ajava.io.Reader
object. The JDBC driver will do any necessary conversion from UNICODE to 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 the
updateRow
orinsertRow
methods are called to update the database.- Specified by:
updateClob
in interfacejava.sql.ResultSet
- 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.length
- the number of characters in the parameter data.- Throws:
java.sql.SQLException
- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result setjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this method
-
updateClob
public void updateClob(int columnIndex, java.sql.Clob x) throws java.sql.SQLException
Updates the designated column with ajava.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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateClob
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- 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:
java.sql.SQLException
- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
updateClob
public void updateClob(java.lang.String columnLabel, java.sql.Clob x) throws java.sql.SQLException
Updates the designated column with ajava.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 theupdateRow
orinsertRow
methods are called to update the database.- Specified by:
updateClob
in interfacejava.sql.ResultSet
- Parameters:
columnLabel
- 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:
java.sql.SQLException
- if the columnLabel is not valid; if a database access error occurs; the result set concurrency isCONCUR_READ_ONLY
or this method is called on a closed result set
-
markLOBAsPublished
public final void markLOBAsPublished(int index)
Marks the LOB at the specified column as published.When a LOB is marked as published, the release mechanism will not be invoked by the result set. It is expected that the code accessing the LOB releases the locator when it is done with the LOB, or that the commit/rollback handles the release.
- Parameters:
index
- 1-based column index
-
createLOBColumnTracker
final void createLOBColumnTracker()
Initializes the LOB state tracker.The state tracker is used to free LOB locators on the server. If the server doesn't support locators, or there are no LOBs in the result set, a no-op tracker will be used.
-
getNCharacterStream
public java.io.Reader getNCharacterStream(int columnIndex) throws java.sql.SQLException
- Specified by:
getNCharacterStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getNCharacterStream
public java.io.Reader getNCharacterStream(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getNCharacterStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getNString
public java.lang.String getNString(int columnIndex) throws java.sql.SQLException
- Specified by:
getNString
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getNString
public java.lang.String getNString(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getNString
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getRowId
public java.sql.RowId getRowId(int columnIndex) throws java.sql.SQLException
- Specified by:
getRowId
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getRowId
public java.sql.RowId getRowId(java.lang.String columnName) throws java.sql.SQLException
- Specified by:
getRowId
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateRowId
public void updateRowId(int columnIndex, java.sql.RowId x) throws java.sql.SQLException
- Specified by:
updateRowId
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateRowId
public void updateRowId(java.lang.String columnName, java.sql.RowId x) throws java.sql.SQLException
- Specified by:
updateRowId
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNString
public void updateNString(int columnIndex, java.lang.String nString) throws java.sql.SQLException
- Specified by:
updateNString
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNString
public void updateNString(java.lang.String columnName, java.lang.String nString) throws java.sql.SQLException
- Specified by:
updateNString
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNCharacterStream
public void updateNCharacterStream(int columnIndex, java.io.Reader x, long length) throws java.sql.SQLException
- Specified by:
updateNCharacterStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNCharacterStream
public void updateNCharacterStream(java.lang.String columnName, java.io.Reader x, long length) throws java.sql.SQLException
- Specified by:
updateNCharacterStream
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNClob
public void updateNClob(int columnIndex, java.sql.NClob nClob) throws java.sql.SQLException
- Specified by:
updateNClob
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateNClob
public void updateNClob(java.lang.String columnName, java.sql.NClob nClob) throws java.sql.SQLException
- Specified by:
updateNClob
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getNClob
public java.sql.NClob getNClob(int i) throws java.sql.SQLException
- Specified by:
getNClob
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getNClob
public java.sql.NClob getNClob(java.lang.String colName) throws java.sql.SQLException
- Specified by:
getNClob
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getSQLXML
public java.sql.SQLXML getSQLXML(int columnIndex) throws java.sql.SQLException
- Specified by:
getSQLXML
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
getSQLXML
public java.sql.SQLXML getSQLXML(java.lang.String colName) throws java.sql.SQLException
- Specified by:
getSQLXML
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateSQLXML
public void updateSQLXML(int columnIndex, java.sql.SQLXML xmlObject) throws java.sql.SQLException
- Specified by:
updateSQLXML
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
updateSQLXML
public void updateSQLXML(java.lang.String columnName, java.sql.SQLXML xmlObject) throws java.sql.SQLException
- Specified by:
updateSQLXML
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
isWrapperFor
public boolean isWrapperFor(java.lang.Class<?> interfaces) throws java.sql.SQLException
Returns false unlessinterfaces
is implemented- Specified by:
isWrapperFor
in interfacejava.sql.Wrapper
- Parameters:
interfaces
- a Class defining an interface.- Returns:
- true if this implements the interface or directly or indirectly wraps an object that does.
- Throws:
java.sql.SQLException
- if an error occurs while determining whether this is a wrapper for an object with the given interface.
-
unwrap
public <T> T unwrap(java.lang.Class<T> interfaces) throws java.sql.SQLException
Returnsthis
if this class implements the interface- Specified by:
unwrap
in interfacejava.sql.Wrapper
- Parameters:
interfaces
- a Class defining an interface- Returns:
- an object that implements the interface
- Throws:
java.sql.SQLException
- if no object if found that implements the interface
-
updateNClob
public void updateNClob(int columnIndex, java.io.Reader x, long length) throws java.sql.SQLException
Updates the designated column with a java.sql.NClob 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:
updateNClob
in interfacejava.sql.ResultSet
- Parameters:
columnIndex
- - the first column is 1, the second is 2x
- - the new column value- Throws:
java.sql.SQLException
- Feature not implemented for now.
-
updateNClob
public void updateNClob(java.lang.String columnName, java.io.InputStream x, long length) throws java.sql.SQLException
Updates the designated column with a java.sql.NClob 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.- Parameters:
columnName
- - the name of the Clob columnx
- - the new column value- Throws:
java.sql.SQLException
- Feature not implemented for now.
-
updateNClob
public void updateNClob(java.lang.String columnName, java.io.Reader x, long length) throws java.sql.SQLException
Updates the designated column with a java.sql.NClob 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:
updateNClob
in interfacejava.sql.ResultSet
- Parameters:
columnName
- - the name of the Clob columnx
- - the new column value- Throws:
java.sql.SQLException
- Feature not implemented for now.
-
getObject
public <T> T getObject(int columnIndex, java.lang.Class<T> type) throws java.sql.SQLException
Retrieve the column as an object of the desired type.- Specified by:
getObject
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
mismatchException
private java.sql.SQLException mismatchException(java.lang.String targetTypeName, int columnIndex) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
getObject
public <T> T getObject(java.lang.String columnName, java.lang.Class<T> type) throws java.sql.SQLException
- Specified by:
getObject
in interfacejava.sql.ResultSet
- Throws:
java.sql.SQLException
-
-