Oracle Objects for OLE in Oracle8i Release 3 (

Features Overview

August 2001



Product Summary

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, Visual C++, VBA in Excel, Active Server Pages, PowerBuilder, Delphi, Microsoft Internet Information Server, and Microsoft Transaction Server.

Because it is a native driver, OO4O generally provides the fastest 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. A product line of AppWizards has been created to reduce the development time necessary for building OO4O applications. These AppWizards support Visual C++, Visual InterDev, Visual Basic, and stand-alone COM components.


OO4O consists of an in-process COM Automation Server, a C++ class library, and the Oracle Data Control.

  • In-Process COM Automation Server: a set of COM Automation interfaces/objects for connecting to Oracle database servers, executing queries and managing the results.
  • C++ Class Library: a set of COM Automation interfaces/objects for connecting to Oracle database servers, executing queries and managing the results.
  • Oracle Data Control: an ActiveX Control that greatly simplifies the exchange of data between query results and popular data-aware visual controls, such as edit, list and grid controls. The Oracle Data Control supports virtually data-aware controls that can be bound to the Microsoft Data Control in Visual Basic.


OO4O include the following major features:

  • Full support for PL/SQL, including seamless access to PL/SQL Cursors
  • Tunable client-side, scrollable and updateable cursors for easy and efficient access to result sets of any size
  • Support for array fetches, updates, and inserts resulting in reduced network roundtrips
  • Connection pooling to allow development of scalable mid-tier application components, such as IIS Active Server Pages that heavily use and serve dynamic content stored in Oracle database servers
  • Thread safety allowing safe access to automation objects in multithreaded environments
  • Small disk and memory footprint
  • Efficient management of database connections and user sessions (connection pooling and multiplexing)
  • Full support for Microsoft Transaction Server (MTS) coordinated transactions
  • Seamless access to instances of new Oracle data types:
  • Object References (REFs)
  • Object Instances (Objects)
  • Nested Tables
  • Easy to use interface for describing schema objects
  • Full support for accessing Advanced Queuing capabilities

Below are descriptions of some of the major features:

Support for Oracle8i Data Types

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.

Support for Microsoft Transaction Server

MTS is essentially a COM-based TP-Monitor and relies on the Microsoft Distributed Transaction Coordinator (DTC) for distributed transaction support. MS DTC was initially shipped with SQL Server 6.5 and defines a Microsoft proprietary, COM-based two-phase-commit protocol known as OLE Transactions.

Oracle database transactions initiated in Oracle Objects for OLE (OO4O) automatically participate in global transactions coordinated by the MS Distributed Transaction Coordinator (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.

OO4O will use this API to provide the capability for enlisting user sessions contained in the OraDatabase Automation interface with DTC. All transactions on these user sessions are controlled by DTC after enlistment is completed. After an OraDatabase is enlisted with DTC, all local transactional operations for that object are disallowed.

Advanced Queuing Interface

OO4O provides interfaces for accessing the Advanced Queuing (AQ) feature in Oracle8i. 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.

Connection Multiplexing

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.

Describing Schema Objects

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.

New Features in Oracle8i Release 3

OO4O includes the following new features in Oracle8i Release 3:

  • Temporary LOBs - useful when calling stored procedures or functions that have arguments of type LOB
  • Asynchronous processing - PL/SQL and SQL can be executed in non-blocking mode
  • Application failover - provides notification to initiate database failover
  • Detection of Lost Connections - detects lost connections and refetches new ones
  • Oracle Code Wizard for Stored Procedures - automatically generates OO4O code that executes PL/SQL or Java stored procedures



Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065

Worldwide Inquiries:
Fax +1.650.506.7200

Copyright © Oracle Corporation 2001
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, Oracle8i, 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.