Oracle® Objects for OLE Developer's Guide 11g Release 2 (11.2) for Microsoft Windows Part Number E17727-03 |
|
|
PDF · Mobi · ePub |
An OraDynaset
object permits browsing and updating of data created from a SQL SELECT
statement.
An OraDynaset
object represents the result set of a SQL SELECT
query or a PL/SQL cursor variable returned from a stored procedure or function. It is essentially a client-side scrollable and updatable cursor that allows browsing the set of rows generated by the query it executes. It is created by the CreateDynaset
or CreateCustomDynaset
method of an OraDatabase
interface. An OraDynaset
object can be used to scroll result sets that contain instances of relational and object-relational columns such as VARRAY
s, nested tables, Object
s, REF
s, and LOBs and BFILE
types.
This object provides transparent mirroring of database operations, such as updates. When data is updated through the Update
method, the local mirror image of the query is updated so that the data appears to have been changed without reevaluating the query. The same procedure is used automatically when records are added to the dynaset. Integrity checking is performed to ensure that the mirrored image of the data always matches the actual data present on Oracle Database. This integrity checking is performed only when necessary (such as just before updates occur).
During create and refresh operations, the OraDynaset
objects automatically bind all relevant enabled input parameters to the specified SQL statement, using the parameter names as placeholders in the SQL statement. This can simplify dynamic query building and increase the efficiency of multiple queries using the same SQL statement with varying WHERE
clauses.
When you use Oracle Objects for OLE, locks are not placed on data until an Edit
method is executed. The Edit
method attempts to obtain a lock using the "SELECT
...
FOR
UPDATE"
statement on the current record of the dynaset. This is done as late as possible to minimize the time that locks are placed on the records. The Edit
method can fail for several reasons:
The SQL query violates the Oracle SQL update rules; for example, using calculated columns or table joins.
The user does not have the privileges needed to obtain a lock.
The record has been locked already by another user. Note that the OpenDatabase
method has an option so that you can decide whether to wait on locks.