首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Delphi 連線 Oracle 資料庫主流方案:dbExpress、BDE、ADO、FireDAC 完整配置指南

     編輯:Oracle 資料庫基礎

方案選型對比(2024 視角)

方案狀態優點缺點建議
FireDAC✅ 現代標準 (RAD Studio 10.x+ 內建)高效能、跨平台、支援 Oracle 12c/19c/21c 新特性、非同步、陣列 DML、連線池內建需較新 RAD Studio 版本首選,新專案直接用
dbExpress⚠️ 維護模式 (10.4 後標記棄用)輕量、原生驅動、無額外運行時無連線池、Oracle 新特性支援滯後、單執行緒阻塞舊專案維護可用,新專案避免
ADO (dbGo)⚠️ 僅 Windows、依賴 Oracle Provider for OLE DBWindows 整合好、ADO.NET 互通OLE DB Provider 易版本衝突、64 位元部署麻煩、非跨平台Windows 專用舊專案
BDE❌ 已淘汰 (Borland 時代產物)無16 位元架構殘留、不支援 Unicode、Oracle 9i 後不再認證嚴禁新專案,舊專案儘速遷移

FireDAC 快速上手(推薦)

設計時配置

  1. 放置 TFDConnection (FDConnection1)
  2. 雙擊開啟連線編輯器:
    • Driver ID: Ora
    • Database: //dbhost:1521/ORCLPDB1 (Easy Connect) 或 TNS 別名
    • User_Name / Password
    • Params: CharacterSet=AL32UTF8、FetchOptions.RowsetSize=1000、FormatOptions.StrsEmpty2Null=True
  3. 測試連線 → 確定

運行時動態連線

FDConnection1.Params.Clear;
FDConnection1.Params.DriverID := 'Ora';
FDConnection1.Params.Database := '//dbhost:1521/ORCLPDB1';
FDConnection1.Params.UserName := 'app_user';
FDConnection1.Params.Password := 'secret';
FDConnection1.Params.Add('CharacterSet=AL32UTF8');
FDConnection1.Connected := True;

查詢與參數化

FDQuery1.Connection := FDConnection1;
FDQuery1.SQL.Text := 'SELECT empno, ename, sal FROM emp WHERE deptno = :deptno AND sal > :minsal';
FDQuery1.ParamByName('deptno').AsInteger := 20;
FDQuery1.ParamByName('minsal').AsFloat := 2000;
FDQuery1.Open;
// 遍歷
while not FDQuery1.Eof do begin
  ShowMessage(FDQuery1.FieldByName('ename').AsString);
  FDQuery1.Next;
end;

dbExpress 配置(舊專案維護參考)

  1. 放置 TSQLConnection (SQLConnection1)
  2. 右鍵 Edit Connection Properties:
    • Driver: Oracle (dbxora.dll / dbxora32.dll)
    • Database: TNS 服務名 (如 ORCL)
    • User_Name / Password
    • LoginPrompt = False (避免對話框)
    • GetDriverFunc=getSQLDriverORACLE, LibraryName=dbxora.dll, VendorLib=oci.dll
  3. 需部署 dbxora.dll、oci.dll (Oracle Instant Client) 至應用目錄或 PATH。

Oracle Client 部署必讀

  • Instant Client:輕量、免安裝、解壓即用。下載 Basic + SQL*Plus + ODBC (視需求) 三個 ZIP,解壓至同一目錄 (如 C:\oracle\instantclient_21_10)。
  • 環境變數:將該目錄加入系統 PATH;設定 TNS_ADMIN 指向含 tnsnames.ora 的目錄(若使用 TNS 別名)。
  • 64 位元應用必須用 64 位元 Instant Client,32 位元應用用 32 位元,不可混用。

遷移建議:BDE/dbExpress → FireDAC

  1. 備份專案。
  2. 專案管理器 → Migrate to FireDAC 精靈 (RAD Studio 內建)。
  3. 手動檢查:TQuery→TFDQuery、TTable→TFDTable、TDatabase→TFDConnection、TSession 移除 (FireDAC 無此概念)。
  4. SQL 方言差異:FireDAC 預設 ParamCreate 為 ptInput,FetchOptions.Mode 為 fmAll,按需調整。
  5. 測試所有資料操作路徑,特別是 Locate/Lookup/Filter、Blob/Clob 處理、預存程序呼叫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved