Oracle 数据存取组件(ODAC) 库为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件。它们用来存取Oracle关系数据库系统。与BDE类似, ODAC 也是一种可供选择的处理数据的方法之一。
ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API)。OCI 通过一个动态运行库(ORA*.DLL)提供了一个标准的数据库存取库及函数,以在应用程序中建立连接。也可以使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle.在这种情况下,ODAC仅需要TCP/IP协议的支持,从而可以创建真正的、最小的数据库应用程序。
与使用BDE开发 Oracle C/S(客户/服务器)应用程序不同的是,BDE不能存取Oracle的一些特殊功能,不能使用更多的资源,不能高速处理数据,而且不定期有麻烦的应用程序分发以及管理。
使用BDE存取Oracle的方式是:
[Oracle RDBMS] <> [SQL*Net] <> [OCI] <> [SQL Links] <> [BDE] <> [Application]
ODAC 直接使用 OCI。 它允许不使用 BDE 及 SQL Links:
[Oracle RDBMS] <> [SQL*Net] <> [OCI] <> [Application]
ODAC Net 提供了更好的方法:
[Oracle RDBMS] <> [TCP/IP] <> [Application]
ODAC 包含了以下组件:
TOraSession - 控制服务连接;
TOraQuery - 执行查询,操作记录集,灵活地更新数据库表;
TSmartQuery - 与 TOraQuery 功能类似,可自动创建 INSERT, DELETE, UPDATE 查询,自动锁定及更新记录;
TOraSQL - 执行SQL语句, PL/SQL 块,存储过程;
TOraPackage - 允许执行包中的过程及函数以及变量;
TOraTable - 允许不需要使用SQL语句来读取及更新单个表;
TOraStoredProc - 执行存储过程和函数,允许编辑游标并可作为参数返回;
TOraNestedTable - 控制嵌套表数据;
TOraProvider - 提供从客户数据集进行数据及应用更新;
TOraScript - 执行 SQL 及 PL/SQL 语句;;
TOraAlerter - 允许在两个会话中传送消息;
TOraLoader - 快速装载Oracle数据库;
TOraSQLMonitor - 允许监视执行基于ODAC应用程序中的动态SQL语句;
TOraErrorHandler - 传送错误信息;
TBDESession - 允许将ODAC集成到基于BDE的应用程序中;
TConnectDialog - 用来输入用户名,口令及服务名;
TCRDBGrid - 增强的 TDBGrid , 提供可视化的的数据过滤及增量查询;
TVirtualTable - 数据存储在内存中。
使用ODAC可以为你提供以下优势:
- 选择Net选项使客户机上不再需要安装 Oracle 客户端;
- 不需要分发,安装及配置 BDE 及 ODBC;
- 你可以使用任何 Delphi/C++ Builder 专业版来开发客户/服务器应用程序;
- 允许你使用许多 Oracle 的特殊功能;
- 支持 Oracle 8 的特殊特性: BLOB, CLOB 以及 BFile 数据类型,对象,数组,引用,嵌套表;
- 简化数据更新;
- 提供两种更新数据的方法:更灵活的 TOraQuery 及更容易的 TSmartQuery;
- 高速数据库记录存取;S
- 提供自动锁定及刷新记录机制;
- 允许通过使用多线程来执行长时间的存储过程;
- 高级设计编辑器;
- ODAC 组件的界面(方法,属性)和标准的BDE数据存取组件(TDatabase,TQuery,..)非常相似;
- 支持所有的数据集组件;
- 使用 OraTools 插件的OraDesigner建立和检查使用OraDesigner的查询,使用OraDebugger设计和调试PL/SQL块以及使用OraExplorer浏览数据库。
兼容性
-------------
ODAC 支持 Oracle 7.3, 8.0, 8i 以及 9i, 包括个人版及简装版。
安装
------------
自 ODAC 3.20 版以后,其运行包和设计包被分离了出来。ODAC 安装程序拷贝这些文件到其相应目录。
odacXX.bpl - ODAC 运行包 (位于 Windows\\System 目录)
dclodacXX.bpl - ODAC 设计包 (位于 Delphi\\Bin 目录)
odacvclXX.bpl - VCL 支持包 (位于 Delphi\\Bin 目录)
oraprovXX.bpl - TOraProvider 组件 (位于 Delphi\\Bin 目录)
crcontrolsXX.bpl - TCRDBGrid 组件 (位于 Delphi\\Bin 目录)
Delphi
======
要编译基于ODAC的应用程序,需要在项目属性的 Project Options|Search 路径中添加 $(DELPHI)\\ODAC\\Lib。
C++ Builder
===========
要编译基于ODAC的应用程序,需要在项目属性的 Project Options|Library路径中添加 $(BCB)\\ODAC\\Lib,在 Project Options|Include 路径中添加 $(BCB)\\ODAC\\Include 。
Kylix
=====
首先你应该取得Kylix IDE 中的ODAC包,使用下面的命令将ODAC包的安装路径添加到指定路径:
PATH=$PATH:<ODAC directory>
另外的方法是将所有的 ODAC 包(*.so)拷贝到任意目录,比如 kylix/bin.现在你可以将ODAC安装到
Kylix IDE 中。请选择Kylix菜单 Component/Install Packages 。按添加按钮并选择 bpldclodacX.包。按OK按钮使组件有效。你也可以将 odac/lib添加到你项目的探索路径中。