Interface SDOResultSet
- All Superinterfaces:
AutoCloseable
,ProResultSet
,ResultSet
,Wrapper
- All Known Implementing Classes:
SDOResultSetImpl
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.
-
Field Summary
Fields inherited from interface java.sql.ResultSet
CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE
-
Method Summary
Modifier and TypeMethodDescriptionboolean
absolute
(int n) JDBC 2.0boolean
PROGRESS Extensionvoid
JDBC 2.0void
attachToAppObj
(SDOFactory appObject) PROGRESS Extensionvoid
JDBC 2.0void
PROGRESS Extensionvoid
JDBC 2.0void
JDBC 2.0void
PROGRESS Extensionboolean
first()
JDBC 2.0getBigDecimal
(int columnIndex) JDBC 2.0getBigDecimal
(String columnName) JDBC 2.0int
JDBC 2.0 Returns the fetch size for this result set.getGregorianCalendar
(int columnIndex) PROGRESS ExtensiongetGregorianCalendar
(String columnName) PROGRESS ExtensiongetQuery()
PROGRESS Extensionint
getRow()
JDBC 2.0PROGRESS ExtensionPROGRESS Extensionboolean
inBatch()
PROGRESS Extensionvoid
JDBC 2.0boolean
JDBC 2.0boolean
PROGRESS Extensionboolean
JDBC 2.0boolean
isFirst()
JDBC 2.0boolean
isLast()
JDBC 2.0boolean
last()
JDBC 2.0void
JDBC 2.0void
JDBC 2.0boolean
previous()
JDBC 2.0void
JDBC 2.0boolean
relative
(int n) JDBC 2.0void
PROGRESS Extensionvoid
PROGRESS Extensionvoid
reOpenQuery
(String rowId) PROGRESS Extensionboolean
JDBC 2.0boolean
JDBC 2.0boolean
JDBC 2.0void
PROGRESS Extensionvoid
PROGRESS Extensionvoid
sendBatchAndReOpen
(String rowId) PROGRESS Extensionvoid
PROGRESS Extensionvoid
updateBigDecimal
(int columnIndex, BigDecimal x) JDBC 2.0void
updateBigDecimal
(String columnName, BigDecimal x) JDBC 2.0void
updateBlob
(int columnIndex, Blob x) JDBC 2.0void
updateBlob
(String columnName, Blob x) JDBC 2.0void
updateBoolean
(int columnIndex, boolean x) JDBC 2.0void
updateBoolean
(String columnName, boolean x) JDBC 2.0void
updateBytes
(int columnIndex, byte[] x) JDBC 2.0void
updateBytes
(String columnName, byte[] x) JDBC 2.0void
updateClob
(int columnIndex, Clob x) JDBC 2.0void
updateClob
(String columnName, Clob x) JDBC 2.0void
updateDate
(int columnIndex, Date x) JDBC 2.0void
updateDate
(String columnName, Date x) JDBC 2.0void
updateDouble
(int columnIndex, double x) JDBC 2.0void
updateDouble
(String columnName, double x) JDBC 2.0void
updateGregorianCalendar
(int columnIndex, GregorianCalendar x) PROGRESS Extensionvoid
updateGregorianCalendar
(String columnName, GregorianCalendar x) PROGRESS Extensionvoid
updateInt
(int columnIndex, int x) JDBC 2.0void
JDBC 2.0void
updateLong
(int columnIndex, long x) JDBC 2.0void
updateLong
(String columnName, long x) JDBC 2.0void
updateNull
(int columnIndex) JDBC 2.0void
updateNull
(String columnName) JDBC 2.0void
updateObject
(int columnIndex, Object value) JDBC 2.0void
updateObject
(String columnName, Object x) JDBC 2.0void
JDBC 2.0void
updateString
(int columnIndex, String x) JDBC 2.0void
updateString
(String columnName, String x) JDBC 2.0void
updateTimestamp
(int columnIndex, Timestamp x) JDBC 2.0void
updateTimestamp
(String columnName, Timestamp x) JDBC 2.0Methods inherited from interface com.progress.open4gl.ProResultSet
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
Methods inherited from interface java.sql.ResultSet
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
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
-
Method Details
-
updateRow
JDBC 2.0Updates the underlying SDO with the new contents of the current row. Cannot be called when on the insert row.
- Specified by:
updateRow
in interfaceResultSet
- Throws:
ProSQLException
- if an SDO access error occurs or if called when on the insert row
-
rowDeleted
JDBC 2.0Indicates 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.
- Specified by:
rowDeleted
in interfaceResultSet
- Returns:
- true if a row was deleted and deletions are detected
- Throws:
ProSQLException
- if an SDO access error occurs
-
getFetchSize
JDBC 2.0 Returns the fetch size for this result set.- Specified by:
getFetchSize
in interfaceResultSet
- Returns:
- the current fetch size for this result set
- Throws:
ProSQLException
- if a database access error occurs
-
deleteRow
JDBC 2.0Deletes the current row from the result set and the underlying SDO. Cannot be called when on the insert row.
- Specified by:
deleteRow
in interfaceResultSet
- Throws:
ProSQLException
- if an SDO access error occurs or if called when on the insert row.
-
insertRow
JDBC 2.0Inserts the contents of the insert row into the result set and the SDO. Must be on the insert row when this method is called.
- Specified by:
insertRow
in interfaceResultSet
- Throws:
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 value
-
cancelRowUpdates
JDBC 2.0Cancels the updates made to a row. This method may be called after calling an
updateXXX
method(s) and before callingupdateRow
to rollback the updates made to a row. If no updates have been made orupdateRow
has already been called, then this method has no effect.- Specified by:
cancelRowUpdates
in interfaceResultSet
- Throws:
ProSQLException
- if an SDO access error occurs or if called when on the insert row
-
moveToInsertRow
JDBC 2.0Moves 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 theupdateXXX
,getXXX
, andinsertRow
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 callinginsertRow
. The methodupdateXXX
must be called before agetXXX
method can be called on a column value.- Specified by:
moveToInsertRow
in interfaceResultSet
- Throws:
ProSQLException
- if an SDO access error occurs or the result set is not updatable
-
moveToCurrentRow
JDBC 2.0Moves 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.
- Specified by:
moveToCurrentRow
in interfaceResultSet
- Throws:
ProSQLException
- if an SDO access error occurs or the result set is not updatable
-
previous
JDBC 2.0Moves the cursor to the previous row in the result set.
Note:
previous()
is not the same asrelative(int)
because it makes sense to callprevious()
when there is no current row.- Specified by:
previous
in interfaceResultSet
- Returns:
- true if the cursor is on a valid row; false if it is off the result set
- Throws:
ProSQLException
- if an SDO access error occurs or the result scrolling mode is FORWARD_ONLY
-
relative
JDBC 2.0Moves 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 callingnext()
because is makes sense to callnext()
when there is no current row, for example, when the cursor is positioned before the first row or after the last row of the result set.- Specified by:
relative
in interfaceResultSet
- Returns:
- true if the cursor is on a row; false otherwise
- Throws:
ProSQLException
- if an SDO access error occurs, there is no current row, or the scrolling mode is FORWARD_ONLY
-
absolute
JDBC 2.0Moves 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 callingfirst()
. Callingabsolute(-1)
is the same as callinglast()
.- Specified by:
absolute
in interfaceResultSet
- Returns:
- true if the cursor is on the result set; false otherwise
- Throws:
ProSQLException
- if an SDO access error occurs or row is 0, or the scrolling mode is FORWARD_ONLY
-
absolute
PROGRESS ExtensionMoves the cursor to the given row identifier in the result set.
The row identifier is returned from the getRowIdentity() method.
- Parameters:
rowId
- the row identifier of the row to position on- Returns:
- true if the cursor is on the result set; false otherwise
- Throws:
ProSQLException
- if an SDO access error occurs or row is 0, or the scrolling mode is FORWARD_ONLY
-
beforeFirst
JDBC 2.0Moves the cursor to the front of the result set, just before the first row. Has no effect if the result set contains no rows.
- Specified by:
beforeFirst
in interfaceResultSet
- Throws:
ProSQLException
- if an SDO access error occurs or the scrolling mode is FORWARD_ONLY
-
first
JDBC 2.0Moves the cursor to the first row in the result set.
- Specified by:
first
in interfaceResultSet
- Returns:
- true if the cursor is on a valid row; false if there are no rows in the result set
- Throws:
ProSQLException
- if an SDO access error occurs or the scrolling mode is FORWARD_ONLY
-
afterLast
JDBC 2.0Moves the cursor to the end of the result set, just after the last row. Has no effect if the result set contains no rows.
- Specified by:
afterLast
in interfaceResultSet
- Throws:
ProSQLException
- if an SDO access error occurs or the scrolling mode is FORWARD_ONLY
-
last
JDBC 2.0Moves the cursor to the last row in the result set.
- Specified by:
last
in interfaceResultSet
- Returns:
- true if the cursor is on a valid row; false if there are no rows in the result set
- Throws:
ProSQLException
- if an SDO access error occurs or the scrolling mode is FORWARD_ONLY
-
updateObject
JDBC 2.0Updates a column with an Object value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the row in the SDO; instead theupdateRow
orinsertRow
methods are called to pdate the row.- Specified by:
updateObject
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...value
- the new column value- Throws:
ProSQLException
- if an SDO access error occurs
-
getBigDecimal
JDBC 2.0Gets the value of a column in the current row as a java.math.BigDecimal object with full precision.
- Specified by:
getBigDecimal
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...- Returns:
- the column value (full precision); if the value is SQL NULL, the result is null
- Throws:
ProSQLException
- if an SDO access error occurs
-
getBigDecimal
JDBC 2.0Gets the value of a column in the current row as a java.math.BigDecimal object with full precision.
- Specified by:
getBigDecimal
in interfaceResultSet
- Parameters:
columnName
- the column name- Returns:
- the column value (full precision); if the value is SQL NULL, the result is null
- Throws:
ProSQLException
- if an SDO access error occurs
-
isBeforeFirst
JDBC 2.0Indicates whether the cursor is before the first row in the result set.
- Specified by:
isBeforeFirst
in interfaceResultSet
- Returns:
- true if the cursor is before the first row, false otherwise. Returns false when the result set contains no rows.
- Throws:
ProSQLException
- if an SDO access error occurs
-
isAfterLast
JDBC 2.0Indicates whether the cursor is after the last row in the result set.
- Specified by:
isAfterLast
in interfaceResultSet
- Returns:
- true if the cursor is after the last row, false otherwise. Returns false when the result set contains no rows.
- Throws:
ProSQLException
- if an SDO access error occurs
-
isFirst
JDBC 2.0Indicates whether the cursor is on the first row of the result set.
- Specified by:
isFirst
in interfaceResultSet
- Returns:
- true if the cursor is on the first row, false otherwise.
- Throws:
ProSQLException
- if a SDO access error occurs
-
isLast
JDBC 2.0Indicates 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.- Specified by:
isLast
in interfaceResultSet
- Returns:
- true if the cursor is on the last row, false otherwise.
- Throws:
ProSQLException
- if a SDO access error occurs
-
getRow
JDBC 2.0Retrieves the current row number. The first row is number 1, the second number 2, and so on.
- Specified by:
getRow
in interfaceResultSet
- Returns:
- the current row number; 0 if there is no current row
- Throws:
ProSQLException
- if a SDO access error occurs
-
rowUpdated
JDBC 2.0Indicates whether the current row has been updated.
- Specified by:
rowUpdated
in interfaceResultSet
- Returns:
- true if the current row was updated through this SDO and the update was not yet performed on the underlying SDO.
- Throws:
ProSQLException
- if a SDO access error occurs
-
rowInserted
JDBC 2.0Indicates whether the current row has had an insertion.
- Specified by:
rowInserted
in interfaceResultSet
- Returns:
- true if a row has had an insertion and the insertion was not yet performed on the underlying SDO.
- Throws:
ProSQLException
- if a SDO access error occurs
-
updateNull
JDBC 2.0Give a nullable column a null value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateNull
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...- Throws:
ProSQLException
- if a SDO access error occurs
-
updateBoolean
JDBC 2.0Updates a column with a boolean value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateBoolean
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateInt
JDBC 2.0Updates a column with an integer value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateInt
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateLong
JDBC 2.0Updates a column with a long value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateLong
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateDouble
JDBC 2.0Updates a column with a Double value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateDouble
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateBigDecimal
JDBC 2.0Updates a column with a BigDecimal value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateBigDecimal
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateString
JDBC 2.0Updates a column with a String value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateString
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateBytes
JDBC 2.0Updates a column with a byte array. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateBytes
in interfaceResultSet
- Parameters:
columnIndex
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateDate
JDBC 2.0Updates a column with a Date value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateDate
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateTimestamp
JDBC 2.0Updates a column with a Timestamp value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateTimestamp
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateBlob
JDBC 2.0Updates a column with a Blob value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateBlob
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateClob
JDBC 2.0Updates a column with a Clob value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateClob
in interfaceResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateNull
JDBC 2.0Updates a column with a null value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateNull
in interfaceResultSet
- Parameters:
columnName
- the name of the column- Throws:
ProSQLException
- if a SDO access error occurs
-
updateBoolean
JDBC 2.0Updates a column with a boolean value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateBoolean
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateInt
JDBC 2.0Updates a column with an integer value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateInt
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateLong
JDBC 2.0Updates a column with a long value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateLong
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateDouble
JDBC 2.0Updates a column with a double value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateDouble
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateBigDecimal
JDBC 2.0Updates a column with a BigDecimal value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateBigDecimal
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateString
JDBC 2.0Updates a column with a String value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateString
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateBytes
JDBC 2.0Updates a column with a byte array value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateBytes
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateDate
JDBC 2.0Updates a column with a Date value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateDate
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateTimestamp
JDBC 2.0Updates a column with a Timestamp value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateTimestamp
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateBlob
JDBC 2.0Updates a column with a Blob value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateBlob
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateClob
JDBC 2.0Updates a column with a Clob value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateClob
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateObject
JDBC 2.0Updates a column with an Object value. The
updateXXX
methods are used to update column values in the current row, or the insert row. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Specified by:
updateObject
in interfaceResultSet
- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
refreshRow
JDBC 2.0Refreshes 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. IfrefreshRow
is called after callingupdateXXX
, but before callingupdateRow
, then the updates made to the row are lost. Calling the methodrefreshRow
frequently will slow performance.- Specified by:
refreshRow
in interfaceResultSet
- Throws:
ProSQLException
- if a SDO access error occurs or if called when on the insert row
-
isAttached
boolean isAttached()PROGRESS Extensionis there an underlying appObject attached to the result set?
- See Also:
-
detachFromAppObj
PROGRESS ExtensionDetach 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.
- Throws:
ProSQLException
-
attachToAppObj
PROGRESS ExtensionAttach to an appObject
- Throws:
ProSQLException
Open4GLException
- See Also:
-
inBatch
boolean inBatch()PROGRESS ExtensionIs this SDO result set in batch mode?
- See Also:
-
cancelBatch
PROGRESS ExtensionCancel a batch
- Throws:
ProSQLException
- if SDO access exception occurs- See Also:
-
sendBatch
PROGRESS ExtensionSend the batch to the SDO on the server and end the batch session - inBatch() returns false after a sendBatch() call.
- Throws:
ProSQLException
- if a SDO access error occurs- See Also:
-
sendBatchAndReOpen
PROGRESS ExtensionSend 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).
- Throws:
ProSQLException
- if a SDO access error occurs- See Also:
-
sendBatchAndReOpen
PROGRESS ExtensionSend 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).
- Throws:
ProSQLException
- if a SDO access error occurs- See Also:
-
startBatch
PROGRESS ExtensionStart 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.
- Throws:
ProSQLException
- if a SDO access error occurs
-
getQuery
PROGRESS ExtensionGet the 4GL query that created this SDO result set
- Throws:
ProSQLException
- if a SDO access error occurs
-
reOpenQuery
PROGRESS ExtensionReopen the query and position the cusrsor before the first row
- Throws:
ProSQLException
- if a SDO access error occurs
-
reOpenQuery
PROGRESS ExtensionReopen the query and position the cusrsor before on the rowId row If rowId is null then reposition before the first row.
- Parameters:
rowId
- the row identifier of the row to position on- Throws:
ProSQLException
- if a SDO access error occurs- See Also:
-
getRowIdentity
PROGRESS ExtensionReturns the PROGRES ROWID of the row. If the row comes from a join then returns a comma separated list of identifiers.
- Throws:
ProSQLException
- if a SDO access error occurs
-
getGregorianCalendar
PROGRESS ExtensionGets the value of a column in the current row as a java.util.GregorianCalendar object.
- Specified by:
getGregorianCalendar
in interfaceProResultSet
- Parameters:
columnIndex
- the first column is 1, the second is 2, ...- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
ProSQLException
- if a SDO access error occurs
-
getGregorianCalendar
PROGRESS ExtensionGets the value of a column in the current row as a java.util.GregorianCalendar object.
- Specified by:
getGregorianCalendar
in interfaceProResultSet
- Parameters:
columnName
- the SQL name of the column- Returns:
- the column value; if the value is SQL NULL, the result is null
- Throws:
ProSQLException
- if a SDO access error occurs
-
updateGregorianCalendar
PROGRESS ExtensionUpdates 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. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Parameters:
columnIndex
- the first column is 1, the second is 2, ...x
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
updateGregorianCalendar
PROGRESS ExtensionUpdates 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. TheupdateXXX
methods do not update the underlying SDO; instead theupdateRow
orinsertRow
methods are called to update the SDO.- Parameters:
columnName
- the name of the columnx
- the new column value- Throws:
ProSQLException
- if a SDO access error occurs
-
getSDOInterface
PROGRESS ExtensionGets direct access the a subset of the underlying methods of the SDO.
- Throws:
ProSQLException
- if a SDO access error occurs- See Also:
-
releaseSDOInterface
PROGRESS ExtensionDeletes 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.
- Throws:
ProSQLException
- if a SDO access error occurs- See Also:
-