This chapter introduces Oracle Objects for OLE (OO4O).
This chapter contains these topics:
Figure 1-1 illustrates the software layers that comprise the OO4O product.
OO4O provides the following:
The OO4O In-Process Automation Server is a set of COM Automation Objects for connecting to Oracle databases, executing SQL statements and PL/SQL blocks, and accessing the results.
Figure 1-2 illustrates the object model that comprise the OO4O product.
Unlike other COM-based database connectivity APIs, such as Microsoft ActiveX Data Objects (ADO), the OO4O Automation Server was created specifically for use with Oracle databases. It provides an optimized API for accessing features that are unique to the Oracle database and are otherwise cumbersome or unavailable from ODBC or OLE DB components.
OO4O provides key features for accessing Oracle databases efficiently and easily in environments ranging from the typical two-tier client/server applications, such as those developed in Visual Basic or Excel, to application servers deployed in multitiered application server environments such as Web server applications in Microsoft Internet Information Server (IIS) or Microsoft Transaction Server (MTS).
See Also:"Introduction to Automation Objects"
Oracle 10g is grid enabled, allowing developers to take full advantage of grid support without changes being required to existing code.
Tunable client-side, scrollable and updatable cursors for easy and efficient access to result sets of queries.
PL/SQL support for execution of PL/SQL anonymous blocks and stored procedures. This includes support for the Oracle data types, such as PL/SQL cursors, that are needed for parameters of PL/SQL stored procedures.
Support for array fetches, updates, and inserts resulting in reduced network round-trips.
Connection pooling to allow development of scalable middle tier application components, such as IIS Active Server Pages, that use and serve dynamic content stored in Oracle databases.
Support for COM+ and Microsoft Transaction Server (MTS) co-ordinated transactions.
Seamless access to instances of advanced Oracle data types:
Object references (REFs)
Object instances (Objects)
Full support for advanced queuing.
Support for publishing, detecting, and subscribing to database events.
Support for asynchronous processing of SQL statements and PL/SQL blocks.
Easy to use interface for describing schema objects.
The Oracle code wizard for stored procedures, which automatically generates OO4O code to execute PL/SQL or Java stored procedures.
Thread safety, allowing safe access to automation objects in multithreaded environments.
Oracle Data Control is an ActiveX control that is designed to simplify the exchange of data among an Oracle database and visual controls such as edit, text, list, and grid controls in Visual Basic and other development tools that support custom controls.
A data control enables you to perform most data access operations without writing any code. To create a dynaset with a data control, set the
RecordSource properties, and execute the
A data control enables you to bind it to other controls that display a field, a record, or multiple records of the underlying dynaset. When record movement occurs, data in bound controls stay synchronized with the current record of the dynaset. If a user changes data in a control that is bound to a data control, the changes are automatically reflected in the underlying dynaset and database.
The Oracle Data Control is compatible with the Microsoft data control included with Visual Basic. If you are familiar with the Visual Basic data control, learning to use Oracle Data Control is quick and easy. Communication between data-aware controls and a Data Control is governed by a protocol specified by Microsoft.
The Oracle Objects for OLE C++ Class Library is a collection of C++ classes that provide programmatic access to the OO4O Automation server. Although the class library is implemented using OLE Automation, neither the OLE development kit nor any OLE development knowledge is necessary to use it. This library helps C++ developers avoid writing COM client code to access the OO4O interfaces.
In addition to the object classes, the class library provides a bound class, which allows controls such as text and list boxes to be linked directly to a field of a dynaset (columns of a table in the database). The bound class supports late, run-time binding, as is available in Visual Basic. The Oracle Objects for OLE C++ Class Library is supported for Microsoft Visual C++ and the Microsoft Foundation Classes for the bound class.
This section discusses the required setups for using Oracle Objects for OLE.
Oracle Objects for OLE can be installed in multiple Oracle homes, starting with Oracle Database 10g. However, being a COM component, only one instance can be active on the computer. This means that the current (latest) installation renders the previous one inactive. You can switch Oracle homes by using the Oracle installer.
The following system requirements are necessary to install Oracle Objects for OLE:
Windows XP, Windows 2000, or Windows Server 2003
A local or remote Oracle database (Oracle8i, Oracle9i, or Oracle Database 10g)
Oracle networking if connecting to a remote Oracle database
Required Support Files (RSF) 10.1. Oracle Universal Installer ensures that the RSFs are installed as part of the OO4O installation.
The OO4O automation server requires an application that supports COM Automation such as:
Microsoft Visual Basic
Microsoft Internet Information Server (IIS)
The following other requirements may be necessary:
The Oracle Data Control requires Visual Basic.
The Oracle Objects for OLE C++ Class Library requires Microsoft Visual C++ Version 6.0 or later.
The OO4O Code Wizard requires Visual Basic 6. Visual Basic 6 must be installed before installing the Code Wizard.
The Oracle In-Process Server Type library (
oip10.tlb) must be referenced when an OO4O Visual Basic project is developed.
To do this, select References from the Project menu (VB 5.0/6.0) and check the box next to the Oracle In-Process Server 5.0 Type Library, which should be pointing to the
\bin\oip10.tlb file. See "Using Oracle Objects for OLE Automation with Visual Basic" for detailed information.
As part of the OO4O installation, the following directories are created and contain the corresponding files:
\OO4O - SQL scripts and constants file
\OO4O\CPP - Libraries, include files, DLLs, and source for the class library
\OO4O\CPP\MFC - Libraries, include files, and source for the MFC Bound Class Library
\OO4O\EXCEL\SAMPLES - Excel samples
OO4O\VB\SAMPLES - Visual Basic samples
\OO4O\VB\SAMPLES\QT - Visual Basic Quick Tour guide
\OO4O\IIS\SAMPLES - IIS samples
\OO4O\codewiz - OO4O Code Wizard samples
Oracle provides support information for components on various platforms, lists compatible client and database versions, and identifies patches and workaround information.
Find the latest certification information at:
You must register online before using OracleMetaLink. After logging in, select Certify & Availability from the left-hand column. From the Product Lifecycle page, select the Certifications button. Other Product Lifecycle options include Product Availability, Desupport Notices, and Alerts.
This section discusses files that can be redistributed or updated on a computer that belongs to an end user or a developer.
If you cannot guarantee that your end users have the current release of Oracle Objects for OLE installed on their computers, you need to redistribute specific files that are part of Oracle Objects for OLE along with your OO4O application. A typical scenario might be if OO4O is installed as a patch without use of Oracle Universal Installer.
Table 1-1 lists the Redistributable file locations with comments and further actions that are needed.
|Files||Place in Directory||Further Actions||Comments|
||Execute the following from a command prompt:
||Edit for the correct
||File provided to register OO4O configuration information.|
||None.||This message file is language-specific.
||Distribute the files that correspond to the development software used in your application.|
Additionally, ensure that the system requirements described in "Overview of Oracle Objects for OLE" are met.
You must also distribute the files from the following list that correspond to the development software you used to build your application:
oraclm32.dll (for Microsoft Visual C++)
oo4oparm.reg file is provided to register OO4O configuration information. Review this file and edit it as necessary to reflect the correct
ORACLE_HOME location and
ID on your computer. To register
oip10.dll and enter the OO4O configuration information for
oo4oparm.reg in the registry, execute the following from a command prompt:
The message file
oiplang.msb should also be provided and copied to the
\oo4o\mesg directory. The message file is specific to a language. For example,
oipus.msb is the English version and
oipja.msb is the Japanese version.
Note:Oracle Data Control (
See Also:"Oracle Data Control"