|Oracle® Objects for OLE Developer's Guide
10g Release 1 (10.1)
Part Number A95895-01
OO4O provides COM Automation interfaces for working with LOBs, Oracle objects, and collection types. These interfaces provide 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.
Oracle LOBs, Objects, and Collections
|VARRAY and Nested Table
· 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 preceding types are retrieved as part of a dynaset, then the preceding 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 preceding 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.