Initializing Oracle LOBs, Objects, and Collections
OO4O provides COM Automation interfaces for working with LOBs, Oracle objects,
and collection types. These interfaces provides methods and properties to
access data associated with LOBs, Oracle objects, and collection instances. The
following tables explains LOBS, Oracle objects, and collection types and its
associated OO4O interface.
Type
| OO4O Interface
|
Object
| OraObject
|
REF
| OraRef
|
VARRAY and Nested Table
| OraCollection
|
BLOB
| OraBLOB
|
CLOB
| OraCLOB
|
BFILE
| OraBFile
|
The above interfaces are retrieved in OO4O depends on how they are stored in
the database or accessed in a SQL statement. The following are the possible
scenarios:
· Column of a table
If table containing LOBs, object types, and collections as columns and the
dynaset's select statement is based on this table, then Value property of OraField
object represents that column returns corresponding OO4O interfaces for that
type.
· Bind variable in a SQL statement or PL/SQL block
If SQL statement or PL/SQL block having LOBs, object types, and collections as
bind variable, then OraParameter object should be created with corresponding
serve type using Add method. The Value property of OraParameter object
represents that bind variable returns corresponding OO4O interfaces for that type.
· Attribute of an Oracle object instance
If an Oracle object instance having LOBs, object types, and collections as its
attribute, then corresponding OO4O interface for that attribute is retrieved
by using subscript or name of the attribute from OraObject or OraRef or Value
property of OraAttribute object.
· Element of VArray and Nested Table
If an Oracle VArray and Nested table having object types, and REF as its
elements, then the corresponding OO4O interface is retrieved using the element index
as the subscript from the OraCollection object.
When OO4O interfaces for the above types are retrieved as part of a dynaset,
then above OO4O interfaces represents instances of LOBs, objects, and collection
types for the dynaset's current row. If the dynaset current row changes due to
move operation, then OO4O interfaces will represent instances of LOBs,
objects, and collection types for the new current row. When OO4O interfaces for the
above types are retrieved as part of a OraParameter and OraParameter value
changes to due to OraSQLStmt's Refresh method, then OO4O interface represents a new
instance LOBs, object, and collection type for that OraParameter.
Internally OO4O maintains one OO4O interface for each OraField, OraParameter,
and OraAttribute object. In order to retain the instance of LOBs, objects, and
collection types independent of dynaset move operation, OraSQLStmt's Refresh
operation, use the Clone method on the corresponding OO4O interface. This method
makes the copy of LOBs, objects, and collection types instance and returns a
corresponding OO4O interface associated with that copy.
Contents