Oracle objects for OLE(OO4O)是一组软件层,其设计目的是使与微软 COM 自动化和 ActiveX 兼容的语言直接访问 Oracle 数据库,这些语言包括 Visual Basic、Visual Basic for Application (VBA)、IIS Active Server Pages(ASP)、Windows 脚本宿主和 Visual C++。这些层是直接在 Oracle Call Interface(OCI)上编写的,绕过了标准的 ODBC、OLE DB 和ADO 层。虽然使用它创建的应用程序在使用其它数据库的时候会不兼容,但是它却能够直接地地访问 Oracle 数据库,而且能够更广地访问 Oracle 数据库。
开发人员可以使用 OO4O In-Process 自动化服务器来连接 Oracle 数据库服务器,还可以通过 COM 自动化对象执行 SQL 或 PL/SQL 过程。另外还有一种使用In-Process 服务器的方法,那就是从其接口“OracleInProcServer.XOraSession”为一个会话创建一个 COM 对象并访问子对象,如下面Visual Basic 的例子所示:
Set objSession = CreateObject("OracleInProcServer.XOraSession")
Set objDatabase = objSession.OpenDatabase("","scott/tiger",0)
使用一个数据库对象可以从数据库查询记录,或者直接执行 DLL 或 DML 语句。例如,下面是一段 VBA 脚本,它可以在 Microsoft Excel 中运行并取出 EMP 表中所有的数据然后添加到工作表的表格中:
虽然可能通过 Data/External 数据源函数从一个外部数据源将数据填充到一个 Excel 电子表,但是这个宏提供了更加直接的控制,允许你准确地指定数据怎样读到电子表中;而且由于宏在访问 Oracle 数据库的时候不经过额外的层,所以其速度也比较快。它还提供附加的功能,包括存储和提取大二进制对象数据(比如说图像)的能力。
OO4O套件包括一个ActiveX 控件Oracle Data Control,它可以绑定到自定义控件,比如说那些在 Visual Basic 中使用的根据用户接口迭代的自动跟踪数据的控件。
OO4O 还包括一个 OLE C++ 类库,该类库为 Visual C++ 开发人员提供一个类似的访问机制,可以被绑定到基础类上。