public interface SDOResultSet extends ProResultSet, java.lang.AutoCloseable
The SDOResultSet interface provides access to 4GL Smart Data Objects (SDOs) through an Open AppServer. An SDOResultSet object is returned from a _createSDOResultSet() method. _createSDOResultSet() methods are implemented by ProxyGen generated AppObjects and the SDOAppObject class.
The _createSDOResultSet() method receives one mandatory String parameter - the name of the SDO *.w file. There are also optional parameters to modify the query of the underlying SDO and to set different aspects of the scrolling algorithm and usage of resources.
The SDOResultSet interface is a super subset of JDBC2's ResultSet
.
All the relevant methods of the standard JDBC2 ResultSet are implemented, as
well as, some methods that allow for a complete and efficient access to SDOs.
The SDOResultSet object can be Statefull or Stateless. A Stateless SDOResultSet object automatically creates and deletes the underlying SDO persistent procedure in order to free the AppServer for requests from other clients. The persistent procedures is kept only for the short duration when data is being sent or received. A Statefull SDOResultSet, on the other hand, keeps the underlying SDO persistent procedure until it's closed. The setStateless() method of the com.progress.open4g.SDOParameters class should be used, and the SDOParameters object should be passed to the _createSDOResultSet() method in order to create a Stateless SDOResultSet object. A Stateless SDOResultSet always uses the PREFETCH scrolling mode (see bellow).
The SDOResultSet object can have different scrolling modes. The different
scrolling modes allows the application to tradeoff between: initial response
time, memory usage, result set stability and functionality. The PREFETCH
scrolling mode ensures the stability of the result set but all the rows are
fetched when the object is created and held in memory until
ResultSet.close()
is called. The FORWARD_ONLY mode supports only the
next() navigation method, but rows are not kept in memory. The KEEP_ROWS mode
(the default) represents a compromise with a good response time, reasonable
stability, and full navigation functionality; but all the rows are kept in
memory until ResultSet.close()
is called.
SDOResultSet implements AutoCloseable
. It is the callers responsibility to ensure
SDOResultSet.close() is called or use java's try with resources statement to close
the object. Not doing so will result in a memory leak.
When the ResultSet.close()
method is called, the underlying SDO persistent
procedure is deleted and SDOResultSet is no longer accessible.
A Stateless SDOResultSet object can be detached and re-attached from its
AppObject using the detachFromAppObj()
and attachToAppObj(SDOFactory)
methods.
detachFromAppObj() allows the Java application to use the SDOResultSet
without holding any server resources. When the application is ready to send
data to the AppServer it calls attachToAppObj(SDOFactory)
to regain access to
the AppServer.
The SDOResultSet interface extends the Serializable
interface. That
means that a detached SDOResultSet object can be written to a file using the
java.io.ObjectOutputStream.writeObject() method and be read from a file using
the java.io.ObjectInputStream.readObject() method. After being read from a
file, attachToAppObj(SDOFactory)
can be used to regain access to the AppServer.
SDOResultSet objects implement the startBatch()
and sendBatchAndReOpen()
methods. All
the updates, deletes and inserts between a startBatch() statement and a
sendBatch()
( or sendBatchAndReOpen()
) statement are sent to the AppServer
together. Batch update improve performance significantly. cancelBatch()
can
be used to undo all the modifications that were performed since the last
startBatch()
statement.
Modifier and Type | Method and Description |
---|---|
boolean |
absolute(int n)
JDBC 2.0
|
boolean |
absolute(java.lang.String rowId)
PROGRESS Extension
|
void |
afterLast()
JDBC 2.0
|
void |
attachToAppObj(SDOFactory appObject)
PROGRESS Extension
|
void |
beforeFirst()
JDBC 2.0
|
void |
cancelBatch()
PROGRESS Extension
|
void |
cancelRowUpdates()
JDBC 2.0
|
void |
deleteRow()
JDBC 2.0
|
void |
detachFromAppObj()
PROGRESS Extension
|
boolean |
first()
JDBC 2.0
|
java.math.BigDecimal |
getBigDecimal(int columnIndex)
JDBC 2.0
|
java.math.BigDecimal |
getBigDecimal(java.lang.String columnName)
JDBC 2.0
|
int |
getFetchSize()
JDBC 2.0
Returns the fetch size for this result set.
|
java.util.GregorianCalendar |
getGregorianCalendar(int columnIndex)
PROGRESS Extension
|
java.util.GregorianCalendar |
getGregorianCalendar(java.lang.String columnName)
PROGRESS Extension
|
java.lang.String |
getQuery()
PROGRESS Extension
|
int |
getRow()
JDBC 2.0
|
java.lang.String |
getRowIdentity()
PROGRESS Extension
|
SDOInterface |
getSDOInterface()
PROGRESS Extension
|
boolean |
inBatch()
PROGRESS Extension
|
void |
insertRow()
JDBC 2.0
|
boolean |
isAfterLast()
JDBC 2.0
|
boolean |
isAttached()
PROGRESS Extension
|
boolean |
isBeforeFirst()
JDBC 2.0
|
boolean |
isFirst()
JDBC 2.0
|
boolean |
isLast()
JDBC 2.0
|
boolean |
last()
JDBC 2.0
|
void |
moveToCurrentRow()
JDBC 2.0
|
void |
moveToInsertRow()
JDBC 2.0
|
boolean |
previous()
JDBC 2.0
|
void |
refreshRow()
JDBC 2.0
|
boolean |
relative(int n)
JDBC 2.0
|
void |
releaseSDOInterface()
PROGRESS Extension
|
void |
reOpenQuery()
PROGRESS Extension
|
void |
reOpenQuery(java.lang.String rowId)
PROGRESS Extension
|
boolean |
rowDeleted()
JDBC 2.0
|
boolean |
rowInserted()
JDBC 2.0
|
boolean |
rowUpdated()
JDBC 2.0
|
void |
sendBatch()
PROGRESS Extension
|
void |
sendBatchAndReOpen()
PROGRESS Extension
|
void |
sendBatchAndReOpen(java.lang.String rowId)
PROGRESS Extension
|
void |
startBatch()
PROGRESS Extension
|
void |
updateBigDecimal(int columnIndex,
java.math.BigDecimal x)
JDBC 2.0
|
void |
updateBigDecimal(java.lang.String columnName,
java.math.BigDecimal x)
JDBC 2.0
|
void |
updateBlob(int columnIndex,
java.sql.Blob x)
JDBC 2.0
|
void |
updateBlob(java.lang.String columnName,
java.sql.Blob x)
JDBC 2.0
|
void |
updateBoolean(int columnIndex,
boolean x)
JDBC 2.0
|
void |
updateBoolean(java.lang.String columnName,
boolean x)
JDBC 2.0
|
void |
updateBytes(int columnIndex,
byte[] x)
JDBC 2.0
|
void |
updateBytes(java.lang.String columnName,
byte[] x)
JDBC 2.0
|
void |
updateClob(int columnIndex,
java.sql.Clob x)
JDBC 2.0
|
void |
updateClob(java.lang.String columnName,
java.sql.Clob x)
JDBC 2.0
|
void |
updateDate(int columnIndex,
java.sql.Date x)
JDBC 2.0
|
void |
updateDate(java.lang.String columnName,
java.sql.Date x)
JDBC 2.0
|
void |
updateDouble(int columnIndex,
double x)
JDBC 2.0
|
void |
updateDouble(java.lang.String columnName,
double x)
JDBC 2.0
|
void |
updateGregorianCalendar(int columnIndex,
java.util.GregorianCalendar x)
PROGRESS Extension
|
void |
updateGregorianCalendar(java.lang.String columnName,
java.util.GregorianCalendar x)
PROGRESS Extension
|
void |
updateInt(int columnIndex,
int x)
JDBC 2.0
|
void |
updateInt(java.lang.String columnName,
int x)
JDBC 2.0
|
void |
updateLong(int columnIndex,
long x)
JDBC 2.0
|
void |
updateLong(java.lang.String columnName,
long x)
JDBC 2.0
|
void |
updateNull(int columnIndex)
JDBC 2.0
|
void |
updateNull(java.lang.String columnName)
JDBC 2.0
|
void |
updateObject(int columnIndex,
java.lang.Object value)
JDBC 2.0
|
void |
updateObject(java.lang.String columnName,
java.lang.Object x)
JDBC 2.0
|
void |
updateRow()
JDBC 2.0
|
void |
updateString(int columnIndex,
java.lang.String x)
JDBC 2.0
|
void |
updateString(java.lang.String columnName,
java.lang.String x)
JDBC 2.0
|
void |
updateTimestamp(int columnIndex,
java.sql.Timestamp x)
JDBC 2.0
|
void |
updateTimestamp(java.lang.String columnName,
java.sql.Timestamp x)
JDBC 2.0
|
getBigDecimal, getBigDecimal, getBlob, getBlob, getBoolean, getBoolean, getBytes, getBytes, getClob, getClob, getDate, getDate, getDouble, getDouble, getGregorianCalendar, getGregorianCalendar, getInt, getInt, getLong, getLong, getObject, getObject, getString, getString, getTimestamp, getTimestamp
clearWarnings, close, findColumn, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getConcurrency, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getFetchDirection, getFloat, getFloat, getHoldability, getInt, getInt, getLong, getLong, getMetaData, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRowId, getRowId, getShort, getShort, getSQLXML, getSQLXML, getStatement, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, isClosed, next, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateByte, updateByte, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateFloat, updateFloat, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateTime, updateTime, wasNull
void updateRow() throws ProSQLException
Updates the underlying SDO with the new contents of the current row. Cannot be called when on the insert row.
updateRow
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or if called when on
the insert rowboolean rowDeleted() throws ProSQLException
Indicates whether a row has been deleted. A deleted row may leave a visible "hole" in a result set. This method can be used to detect holes in a result set. The value returned depends on whether or not the result set can detect deletions.
rowDeleted
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occursint getFetchSize() throws ProSQLException
getFetchSize
in interface java.sql.ResultSet
ProSQLException
- if a database access error occursvoid deleteRow() throws ProSQLException
Deletes the current row from the result set and the underlying SDO. Cannot be called when on the insert row.
deleteRow
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or if called when on
the insert row.void insertRow() throws ProSQLException
Inserts the contents of the insert row into the result set and the SDO. Must be on the insert row when this method is called.
insertRow
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs, if called when not on
the insert row, or if not all of non-nullable columns
in the insert row have been given a valuevoid cancelRowUpdates() throws ProSQLException
Cancels the updates made to a row. This method may be called after calling an
updateXXX
method(s) and before calling updateRow
to
rollback the updates made to a row. If no updates have been made or
updateRow
has already been called, then this method has no
effect.
cancelRowUpdates
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or if called when on
the insert rowvoid moveToInsertRow() throws ProSQLException
Moves the cursor to the insert row. The current cursor position is remembered
while the cursor is positioned on the insert row.
The insert row is a special row associated with an updatable result set. It
is essentially a buffer where a new row may be constructed by calling the
updateXXX
methods prior to inserting the row into the result
set.
Only the updateXXX
, getXXX
, and
insertRow
methods may be called when the cursor is on the insert
row. All of the columns in a result set must be given a value each time this
method is called before calling insertRow
. The method
updateXXX
must be called before a getXXX
method can
be called on a column value.
moveToInsertRow
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or the result set is
not updatablevoid moveToCurrentRow() throws ProSQLException
Moves the cursor to the remembered cursor position, usually the current row. This method has no effect if the cursor is not on the insert row.
moveToCurrentRow
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or the result set is
not updatableboolean previous() throws ProSQLException
Moves the cursor to the previous row in the result set.
Note: previous()
is not the same as relative(int)
because it makes sense to call previous()
when there is no
current row.
previous
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or the result scrolling
mode is FORWARD_ONLYboolean relative(int n) throws ProSQLException
Moves the cursor a relative number of rows, either positive or negative.
Attempting to move beyond the first/last row in the result set positions the
cursor before/after the the first/last row. Calling relative(0)
is valid, but does not change the cursor position.
Note: Calling relative(1)
is different from calling
next()
because is makes sense to call next()
when
there is no current row, for example, when the cursor is positioned before
the first row or after the last row of the result set.
relative
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs, there is no current
row, or the scrolling mode is FORWARD_ONLYboolean absolute(int n) throws ProSQLException
Moves the cursor to the given row number in the result set.
If the row number is positive, the cursor moves to the given row number with respect to the beginning of the result set. The first row is row 1, the second is row 2, and so on.
If the given row number is negative, the cursor moves to an absolute row
position with respect to the end of the result set. For example, calling
absolute(-1)
positions the cursor on the last row,
absolute(-2)
indicates the next-to-last row, and so on.
An attempt to position the cursor beyond the first/last row in the result set leaves the cursor before/after the first/last row, respectively.
Note: Calling absolute(1)
is the same as calling
first()
. Calling absolute(-1)
is the same as
calling last()
.
absolute
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or row is 0, or the
scrolling mode is FORWARD_ONLYboolean absolute(java.lang.String rowId) throws ProSQLException
Moves the cursor to the given row identifier in the result set.
The row identifier is returned from the getRowIdentity() method.
rowId
- the row identifier of the row to position onProSQLException
- if an SDO access error occurs or row is 0, or the
scrolling mode is FORWARD_ONLYvoid beforeFirst() throws ProSQLException
Moves the cursor to the front of the result set, just before the first row. Has no effect if the result set contains no rows.
beforeFirst
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or the scrolling mode
is FORWARD_ONLYboolean first() throws ProSQLException
Moves the cursor to the first row in the result set.
first
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or the scrolling mode
is FORWARD_ONLYvoid afterLast() throws ProSQLException
Moves the cursor to the end of the result set, just after the last row. Has no effect if the result set contains no rows.
afterLast
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or the scrolling mode
is FORWARD_ONLYboolean last() throws ProSQLException
Moves the cursor to the last row in the result set.
last
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occurs or the scrolling mode
is FORWARD_ONLYvoid updateObject(int columnIndex, java.lang.Object value) throws ProSQLException
Updates a column with an Object value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the row in the SDO; instead the updateRow
or
insertRow
methods are called to pdate the row.
updateObject
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...value
- the new column valueProSQLException
- if an SDO access error occursjava.math.BigDecimal getBigDecimal(int columnIndex) throws ProSQLException
Gets the value of a column in the current row as a java.math.BigDecimal object with full precision.
getBigDecimal
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...ProSQLException
- if an SDO access error occursjava.math.BigDecimal getBigDecimal(java.lang.String columnName) throws ProSQLException
Gets the value of a column in the current row as a java.math.BigDecimal object with full precision.
getBigDecimal
in interface java.sql.ResultSet
columnName
- the column nameProSQLException
- if an SDO access error occursboolean isBeforeFirst() throws ProSQLException
Indicates whether the cursor is before the first row in the result set.
isBeforeFirst
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occursboolean isAfterLast() throws ProSQLException
Indicates whether the cursor is after the last row in the result set.
isAfterLast
in interface java.sql.ResultSet
ProSQLException
- if an SDO access error occursboolean isFirst() throws ProSQLException
Indicates whether the cursor is on the first row of the result set.
isFirst
in interface java.sql.ResultSet
ProSQLException
- if a SDO access error occursboolean isLast() throws ProSQLException
Indicates whether the cursor is on the last row of the result set. Note:
Calling the method isLast
may be expensive because the result
set implementation might need to fetch ahead one row in order to determine
whether the current row is the last row in the result set.
isLast
in interface java.sql.ResultSet
ProSQLException
- if a SDO access error occursint getRow() throws ProSQLException
Retrieves the current row number. The first row is number 1, the second number 2, and so on.
getRow
in interface java.sql.ResultSet
ProSQLException
- if a SDO access error occursboolean rowUpdated() throws ProSQLException
Indicates whether the current row has been updated.
rowUpdated
in interface java.sql.ResultSet
ProSQLException
- if a SDO access error occursboolean rowInserted() throws ProSQLException
Indicates whether the current row has had an insertion.
rowInserted
in interface java.sql.ResultSet
ProSQLException
- if a SDO access error occursvoid updateNull(int columnIndex) throws ProSQLException
Give a nullable column a null value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateNull
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...ProSQLException
- if a SDO access error occursvoid updateBoolean(int columnIndex, boolean x) throws ProSQLException
Updates a column with a boolean value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateBoolean
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateInt(int columnIndex, int x) throws ProSQLException
Updates a column with an integer value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateInt
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateLong(int columnIndex, long x) throws ProSQLException
Updates a column with a long value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateLong
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateDouble(int columnIndex, double x) throws ProSQLException
Updates a column with a Double value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateDouble
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateBigDecimal(int columnIndex, java.math.BigDecimal x) throws ProSQLException
Updates a column with a BigDecimal value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateBigDecimal
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateString(int columnIndex, java.lang.String x) throws ProSQLException
Updates a column with a String value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateString
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateBytes(int columnIndex, byte[] x) throws ProSQLException
Updates a column with a byte array.
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 SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateBytes
in interface java.sql.ResultSet
columnIndex
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateDate(int columnIndex, java.sql.Date x) throws ProSQLException
Updates a column with a Date value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateDate
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateTimestamp(int columnIndex, java.sql.Timestamp x) throws ProSQLException
Updates a column with a Timestamp value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateTimestamp
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateBlob(int columnIndex, java.sql.Blob x) throws ProSQLException
Updates a column with a Blob 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 SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateBlob
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateClob(int columnIndex, java.sql.Clob x) throws ProSQLException
Updates a column with a Clob 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 SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateClob
in interface java.sql.ResultSet
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateNull(java.lang.String columnName) throws ProSQLException
Updates a column with a null value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateNull
in interface java.sql.ResultSet
columnName
- the name of the columnProSQLException
- if a SDO access error occursvoid updateBoolean(java.lang.String columnName, boolean x) throws ProSQLException
Updates a column with a boolean value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateBoolean
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateInt(java.lang.String columnName, int x) throws ProSQLException
Updates a column with an integer value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateInt
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateLong(java.lang.String columnName, long x) throws ProSQLException
Updates a column with a long value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateLong
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateDouble(java.lang.String columnName, double x) throws ProSQLException
Updates a column with a double value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateDouble
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateBigDecimal(java.lang.String columnName, java.math.BigDecimal x) throws ProSQLException
Updates a column with a BigDecimal value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateBigDecimal
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateString(java.lang.String columnName, java.lang.String x) throws ProSQLException
Updates a column with a String value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateString
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateBytes(java.lang.String columnName, byte[] x) throws ProSQLException
Updates a column with a byte array value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateBytes
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateDate(java.lang.String columnName, java.sql.Date x) throws ProSQLException
Updates a column with a Date value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateDate
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateTimestamp(java.lang.String columnName, java.sql.Timestamp x) throws ProSQLException
Updates a column with a Timestamp value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateTimestamp
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateBlob(java.lang.String columnName, java.sql.Blob x) throws ProSQLException
Updates a column with a Blob 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 SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateBlob
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateClob(java.lang.String columnName, java.sql.Clob x) throws ProSQLException
Updates a column with a Clob 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 SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateClob
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid updateObject(java.lang.String columnName, java.lang.Object x) throws ProSQLException
Updates a column with an Object value.
The updateXXX
methods are used to update column values in the
current row, or the insert row. The updateXXX
methods do not
update the underlying SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
updateObject
in interface java.sql.ResultSet
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursvoid refreshRow() throws ProSQLException
Refreshes the current row with its most recent value in the SDO. Cannot be
called when on the insert row.
The refreshRow
method provides a way for an application to
explicitly tell the SDOResultSet to refetch a row(s) from the SDO.
If refreshRow
is called after calling updateXXX
,
but before calling updateRow
, then the updates made to the row
are lost. Calling the method refreshRow
frequently will slow
performance.
refreshRow
in interface java.sql.ResultSet
ProSQLException
- if a SDO access error occurs or if called when on the
insert rowboolean isAttached()
is there an underlying appObject attached to the result set?
detachFromAppObj()
void detachFromAppObj() throws ProSQLException
Detach from the underlying appObject
A Stateless SDOResultSet object can be detached and re-attached from its AppObject using the detachFromAppObj() and attachToAppObj() methods. detachFromAppObj() allows the Java application to use the SDOResultSet without holding any server resources. When the application is ready to send data to the AppServer it calls attachToAppObj(appObject) to regain access to the AppServer.
ProSQLException
void attachToAppObj(SDOFactory appObject) throws ProSQLException, Open4GLException
Attach to an appObject
ProSQLException
Open4GLException
detachFromAppObj()
boolean inBatch()
Is this SDO result set in batch mode?
detachFromAppObj()
void cancelBatch() throws ProSQLException
Cancel a batch
ProSQLException
- if SDO access exception occursstartBatch()
void sendBatch() throws ProSQLException
Send the batch to the SDO on the server and end the batch session - inBatch() returns false after a sendBatch() call.
ProSQLException
- if a SDO access error occursstartBatch()
void sendBatchAndReOpen() throws ProSQLException
Send the batch to the SDO on the server, end the batch session and reopen the query. sendBatchAndReOpen() is equivalent to: sendBatch(), close() and then reOpenQuery(), but it is more efficient in stateless mode (see SDOParameters.setStateless).
ProSQLException
- if a SDO access error occursstartBatch()
void sendBatchAndReOpen(java.lang.String rowId) throws ProSQLException
Send the batch to the SDO on the server, end the batch session and reopen the query. sendBatchAndReOpen(rowId) is equivalent to: sendBatch(), close() and then reOpenQuery(rowId), but it is more efficient in stateless mode (see SDOParameters.setStateles s).
ProSQLException
- if a SDO access error occursstartBatch()
void startBatch() throws ProSQLException
Start a batch update session
SDOResultSet objects implement the startBatch() and sendBatch() methods. All the updates, deletes and inserts between a startBatch() statement and a sendBatch() ( or sendBatchAndReOpen() ) statement are sent to the AppServer together. Batch update improve performance significantly. cancelBatch() can be used to undo all the modifications that were performed since the last startBatch() statement.
ProSQLException
- if a SDO access error occursjava.lang.String getQuery() throws ProSQLException
Get the 4GL query that created this SDO result set
ProSQLException
- if a SDO access error occursvoid reOpenQuery() throws ProSQLException
Reopen the query and position the cusrsor before the first row
ProSQLException
- if a SDO access error occursvoid reOpenQuery(java.lang.String rowId) throws ProSQLException
Reopen the query and position the cusrsor before on the rowId row If rowId is null then reposition before the first row.
rowId
- the row identifier of the row to position onProSQLException
- if a SDO access error occursgetRowIdentity()
java.lang.String getRowIdentity() throws ProSQLException
Returns the PROGRES ROWID of the row. If the row comes from a join then returns a comma separated list of identifiers.
ProSQLException
- if a SDO access error occursjava.util.GregorianCalendar getGregorianCalendar(int columnIndex) throws ProSQLException
Gets the value of a column in the current row as a java.util.GregorianCalendar object.
getGregorianCalendar
in interface ProResultSet
columnIndex
- the first column is 1, the second is 2, ...ProSQLException
- if a SDO access error occursjava.util.GregorianCalendar getGregorianCalendar(java.lang.String columnName) throws ProSQLException
Gets the value of a column in the current row as a java.util.GregorianCalendar object.
getGregorianCalendar
in interface ProResultSet
columnName
- the SQL name of the columnProSQLException
- if a SDO access error occursvoid updateGregorianCalendar(int columnIndex, java.util.GregorianCalendar x) throws ProSQLException
Updates a column with a java.util.GregorianCalendar 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 SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
columnIndex
- the first column is 1, the second is 2, ...x
- the new column valueProSQLException
- if a SDO access error occursvoid updateGregorianCalendar(java.lang.String columnName, java.util.GregorianCalendar x) throws ProSQLException
Updates a column with a java.util.GregorianCalendar 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 SDO; instead the updateRow
or
insertRow
methods are called to update the SDO.
columnName
- the name of the columnx
- the new column valueProSQLException
- if a SDO access error occursSDOInterface getSDOInterface() throws ProSQLException
Gets direct access the a subset of the underlying methods of the SDO.
ProSQLException
- if a SDO access error occursreleaseSDOInterface()
void releaseSDOInterface() throws ProSQLException
Deletes the underlying SDO after using the SDOInterface the getSDOInterface() method returned. releaseSDOInterface() must be called in stateless mode (see SDOParameters.setStateless) - it has no effect in non stateless mode.
ProSQLException
- if a SDO access error occursgetSDOInterface()