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 運行包 (位於 WindowsSystem 目錄)
dclodacXX.bpl - ODAC 設計包 (位於 DelphiBin 目錄)
odacvclXX.bpl - VCL 支持包 (位於 DelphiBin 目錄)
oraprovXX.bpl - TOraProvider 組件 (位於 DelphiBin 目錄)
crcontrolsXX.bpl - TCRDBGrid 組件 (位於 DelphiBin 目錄)
Delphi
======
要編譯基於ODAC的應用程序,需要在項目屬性的 Project Options|Search 路徑中添加 $(Delphi)ODACLib。
C++ Builder
===========
要編譯基於ODAC的應用程序,需要在項目屬性的 Project Options|Library路徑中添加 $(BCB)ODACLib,在 Project Options|Include 路徑中添加 $(BCB)ODACInclude 。
Kylix
=====
首先你應該取得Kylix IDE 中的ODAC包,使用下面的命令將ODAC包的安裝路徑添加到指定路徑:
PATH=$PATH:<ODAC directory>
另外的方法是將所有的 ODAC 包(*.so)拷貝到任意目錄,比如 kylix/bin.現在你可以將ODAC安裝到
Kylix IDE 中。請選擇Kylix菜單 Component/Install Packages 。按添加按鈕並選擇 bpldclodacX.包。按OK按鈕使組件有效。你也可以將 odac/lib添加到你項目的探索路徑中。