Oracle Objects for OLE in Oracle Database 10g
Oracle Objects for OLE (OO4O) is a COM-based database connectivity tool that combines seamless and optimized access to Oracle databases with easy to use interfaces. OO4O can be used in a variety of environments ranging from web applications to n-tier client/server applications. It can be used from virtually any programming or scripting language that supports the Microsoft COM Automation technology, such as Visual Basic, Active Server Pages, Visual C++, VBA in Excel, PowerBuilder, Delphi, Microsoft Internet Information Server, and COM+/Microsoft Transaction Server.
Because it is an Oracle native driver, OO4O provides fast performance on Windows clients to Oracle databases. It does not incur the overhead of ODBC and OLE DB drivers. OO4O has been developed and has evolved specifically for use with Oracle database servers. It provides easy access to features that are unique to Oracle, but are otherwise cumbersome or inaccessible to use from ODBC and OLE DB-based components, such as ADO.
OO4O consists of an in-process COM Automation Server, a C++ class library, and the Oracle Data Control.
OO4O includes the following major features:
Below are descriptions of some of the major features:
OO4O provides full support for accessing and manipulating instances of REFs, value instance, Variable-length arrays (VARRAYs), Nested tables, and LOBs.
Instances of these types can be fetched from the database or passed as input or output variables to SQL statements and PL/SQL blocks, including stored procedures and functions. All instances are mapped to COM Automation Interfaces that provide methods for dynamic attribute access and manipulation.
COM+/MTS is essentially a COM-based TP-Monitor and relies on the Microsoft Distributed Transaction Coordinator (DTC) for distributed transaction support. Oracle database transactions initiated in OO4O automatically participate in global transactions coordinated by the MS DTC in MTS, provided that Oracle Services for MTS is installed and running. Database connections established in components deployed in MTS can also be pooled via the Oracle Services for MTS.
The Oracle Services for MTS has been architected to improve the availability and scalability of OO4O applications using this application stack. The new architecture removes the single point of failure and bottlenecks that were present in previous versions. This redesign is transparent without any application code changes being required.
OO4O provides interfaces for accessing the Advanced Queuing (AQ) feature in the Oracle database. It makes AQ accessible from popular COM-based development environments, such as Visual Basic.
The OraAQ Automation interface provides methods for enqueuing and dequeuing messages (OraAQMsg). It also provides a method for monitoring queues for message arrivals. Client applications are notified when messages of interest are dequeued via a callback object.
OO4O allows multiple user sessions to share a network connection to an Oracle Server. This capability is particularly useful for application components that use OO4O in n-tier distributed environments, such as a web environment.
OO4O includes interfaces for retrieving attributes of schema objects. Using the Describe method of the OraDatabase interface retrieves attributes. This method takes the name of a schema object (e.g. emp) and returns a COM Automation object (OraMetaData). OraMetaData provides methods for dynamically navigating and accessing all the attributes (OraMDAttribute collection) of a schema object described.
XML is the most commonly used markup language for data used by Internet applications. OO4O allows users to easily extract data from the Oracle database in XML. The XML support also includes the ability to render XML for Oracle advanced data types and to control the XML output format.
OO4O offers full UCS2 Unicode support. Using Unicode in OO4O is transparent, requiring no application code changes. This makes developing global applications with OO4O easy and fast.
OO4O includes significant new support for Oracle's newest data types. BINARY_DOUBLE and BINARY_FLOAT data types represent single-precision and double-precision floating-point values that mostly conform to the IEEE754 standard for Floating Point Arithmetic. These new types enable faster arithmetic calculations and reduce storage requirements. They also enable you to implement published algorithms that specify IEEE behavior for arithmetic operations. Intense number crunching computations (whose scale and precision requests can be accommodated by the IEEE types) will run very substantially faster using these types than using NUMBER. Additionally, this feature enables cleaner integration with XML and Java environments because it provides similar numeric datatypes for those environments.
OO4O now provides support for the TIMESTAMP and INTERVAL datatypes. These are available through the new OraIntervalDS, OraIntervalYM, OraTimeStamp, and OraTimeStampTZ OO4O objects. These represent improvements over the DATE data type with greater information included and a higher precision. The TIMESTAMP data types can provide time zone information and have precision up to the nanosecond. The two Oracle INTERVAL types provide year to month and day to nanosecond information when comparing timestamps.
OO4O can be installed in a Multiple Oracle Home environment beginning with Oracle Database 10g. However, because OO4O is a COM component, only one instance can be active at a time. This means that a later OO4O installation will render the previous one inactive. A client can toggle between installed OO4O client releases by using the Oracle Installer.
500 Oracle Parkway
Redwood Shores, CA 94065
© Oracle Corporation 2004
All Rights Reserved
This document is provided for informational purposes only, and the information herein is subject to change without notice. Please report any errors herein to Oracle Corporation. Oracle Corporation does not provide any warranties covering and specifically disclaims any liability in connection with this document.
Oracle, Oracle 10g , and PL/SQL are a trademarks of Oracle Corporation.
All other company and product names mentioned are used for identification purposes only and may be trademarks of their respective owners.