Oracle Data Access Components (ODAC) 是專為 Borland Delphi、C++Builder、Kylix 設計的原生 Oracle 存取組件庫,直接呼叫 OCI (Oracle Call Interface) 或純 TCP/IP (Net 模式) 連線資料庫,無需 BDE/ODBC 中介層。本文系統介紹 ODAC 架構優勢、核心組件清單、相容性、安裝部署與跨 IDE 專案設定。
| 架構層級 | 通訊路徑 | 特點 |
|---|---|---|
| BDE 架構 | App → BDE → SQL Links → OCI → SQL*Net → Oracle | 層級多、效能差、無法使用 Oracle 進階功能、部署麻煩 |
| ODAC 標準 (OCI) | App → ODAC → OCI → SQL*Net → Oracle | 直連 OCI、支援完整 Oracle 功能、組件介面類 BDE 易遷移 |
| ODAC Net (直連) | App → ODAC → TCP/IP → Oracle | 零 Client 安裝、極小部署、功能受限 (見技巧一) |
| 組件 | 核心職責 | 關鍵特性 |
|---|---|---|
| TOraSession | 連線管理、交易控制、選項設定 | 多連線、連線池、Net/OCI 切換 |
| TOraQuery | SQL 查詢、可更新資料集、靈活 DML | 自動生成 INSERT/UPDATE/DELETE、樂觀鎖定 |
| TSmartQuery | 增強 Query、自動 DML、主從同步 | 自動鎖定/重新整理、Master/Detail 內建 |
| TOraSQL | 執行 DDL、PL/SQL 區塊、非查詢 SQL | 批次執行、Script 支援、無游標開銷 |
| TOraPackage | 呼叫 Package 程序/函數/變數 | Package 狀態管理、Overload 解析 |
| TOraTable | 單表直接存取 (無 SQL) | Index/Range/Filter、快速原生操作 |
| TOraStoredProc | 執行 Stored Procedure/Function | Ref Cursor 參數、PL/SQL Table 參數 |
| TOraNestedTable | 操作 Nested Table 集合欄位 | 集合元素級 CRUD |
| TOraProvider | 設計時資料集提供者 | IDE 欄位編輯器、資料感知控件支援 |
| TOraScript | 執行多條 SQL/PL/SQL 腳本 | 分隔符解析、錯誤繼續/停止 |
| TOraAlerter | DBMS_ALERT 訊息接收/發送 | 非同步事件驅動、多 Session 通訊 |
| TOraLoader | 高速資料載入 (Direct Path/Conventional) | 批次提交、平行載入、超大檔案匯入 |
| TOraSQLMonitor | 監控應用內動態 SQL 執行 | 效能分析、SQL 審計、除錯輔助 |
| TOraErrorHandler | 統一錯誤處理、對話框顯示 | 自定義錯誤映射、日誌記錄 |
| TBDESession | BDE 應用漸進式遷移橋接 | 共用 BDE 連線池、混合模式運行 |
| TConnectDialog | 標準連線對話框 (帳號/密碼/服務) | 可自定義、儲存連線歷史 |
| TCRDBGrid | 增強 DBGrid | 視覺化過濾、增量查詢、凍結欄 |
| TVirtualTable | 純記憶體資料表 | 無資料庫依賴、離線資料處理 |
TOraQuery (手動控制 DML) + TSmartQuery (自動 DML/鎖定/重新整理),滿足不同複雜度需求。OraDesigner (視覺化 SQL 建構)、OraDebugger (PL/SQL 逐步除錯)、OraExplorer (物件瀏覽)。TDatabase→TOraSession、TQuery→TOraQuery 映射直觀,遷移成本極低。odacXX.bpl -- 運行套件 → Windows\System32
dclodacXX.bpl -- 設計套件 → Delphi\Bin
odacvclXX.bpl -- VCL 支援套件 → Delphi\Bin
oraprovXX.bpl -- TOraProvider → Delphi\Bin (企業版)
crcontrolsXX.bpl -- TCRDBGrid → Delphi\Bin
Project Options → Search Path: $(DELPHI)\ODACLib
Project Options → Library Path: $(BCB)\ODACLib
Project Options → Include Path: $(BCB)\ODACInclude
export PATH=$PATH:
# 或複製 *.so 到 kylix/bin
# Component → Install Packages → Add bpldclodacX.so
ODAC 以「直連 OCI、組件豐富、介面親和、跨平台一致」四大特性,成為 Delphi/C++Builder 開發 Oracle 應用的標準選擇。掌握 18+ 核心組件職責、OCI/Net 雙模式架構、設計時三大工具 (Designer/Debugger/Explorer)、專案路徑設定,即可高效構建從輕量工具到核心交易系統的全谱系 Oracle 應用。