首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 透過 ADO 物件存取 ODBC 資料庫(上):核心物件與方法詳解

     編輯:Delphi

ADO (ActiveX Data Objects) 是微軟提供的通用資料存取介面,屬標準 COM 物件,Delphi 可透過 CreateOleObject 直接使用,無需安裝 BDE,極適合 Web/ISAPI/CGI 等輕量部署場景。本文系統整理 ADO 兩大核心物件——Connection 與 Recordset——的建立方式、關鍵屬性方法、參數說明,並對照 Delphi 原生 BDE 物件,幫助開發者快速上手。

為什麼在 Delphi 用 ADO?

  • ASP 開發者熟悉的語法,學習曲線平緩。
  • 不需部署 10MB+ 的 BDE,僅靠系統內建 MDAC 即可。
  • 支援離線 Recordset、XML 序列化、事件模型等進階功能。
  • 與 IIS/ASP 共用連線池、DSN 設定,維運一致。

1. ADODB.Connection:資料庫連線物件

對應 Delphi TDatabase。

建立與開啟

var AConn: Variant;
AConn := CreateOleObject('ADODB.Connection');
AConn.Open(ConnectionString, UserID, Password);

ConnectionString 參數詳解

Provider=MSDASQL;DSN=MyDsn;UID=sa;PWD=secret;
// 或無 DSN 直連(推薦,避免 DSN 被竄改):
Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Data\Test.mdb
Driver={SQL Server};SERVER=MyServer;DATABASE=MyDB;UID=sa;PWD=secret
參數說明必要性
Provider資料提供者,預設 MSDASQL (OLE DB for ODBC)可省略
DSN系統 DSN 名稱二選一
DRIVERODBC 驅動程式名稱(無 DSN 時必填)二選一
SERVER資料庫伺服器名稱,本機用 (local)視情況
DATABASE資料庫名稱視情況
UID/PWD登入帳號密碼視情況

執行無回傳 SQL

AConn.Execute('DELETE FROM wfjcommu WHERE ID > 100');

關閉連線

AConn.Close;

2. ADODB.Recordset:資料集物件

對應 Delphi TTable/TQuery。

建立與開啟

var ARec: Variant;
ARec := CreateOleObject('ADODB.Recordset');
ARec.Open(Source, ActiveConnection, CursorType, LockType, CommandType);
參數說明範例值
Source命令:資料表名、SQL 陳述式、預存程序名'wfjcommu' / 'SELECT * FROM wfjcommu'
ActiveConnectionADODB.Connection 物件或連接字串AConn / 'DSN=MyDsn'
CursorType游標類型(參見常數表)adOpenStatic (3)
LockType鎖定類型(參見常數表)adLockOptimistic (3)
CommandTypeSource 類型:adCmdText(1)/adCmdTable(2)/adCmdStoredProc(4)adCmdText

常用屬性與方法對照表

功能ADODelphi BDE
檢查 EOF/BOFEOF / BOFEOF / BOF
移動首/尾筆MoveFirst / MoveLastFirst / Last
移動上/下筆MovePrevious / MoveNextPrior / Next
相對移動Move(Rows)MoveBy(Distance)
新增記錄AddNewAppend
確認更新Update (所有異動必須呼叫)Post
刪除記錄Delete → UpdateDelete (立即)
關閉CloseClose
依索引存取欄位Fields[Index]Fields[Index]
依名稱存取欄位Fields['Name']FieldByName('Name')

3. 其他常見物件對照

ADO 物件對應 Delphi 類別備註
ADODB.FieldTField
ADODB.ParameterTParamCommand 物件用
ADODB.ErrorEDBEngineError錯誤集合在 Connection.Errors
ADODB.Command無直接對應參數化查詢、預存程序必備
ADODB.Property無動態屬性集合

部署提醒

  • 目標機需安裝 MDAC 2.1+(Win98/NT4 需另裝,Win2000+ 內建)。
  • 建議使用無 DSN 連接字串,避免「DSN 被使用者誤刪」的經典事故。
  • 錯誤處理:try...except on E: EOleException do ... 捕捉 COM 錯誤碼。

掌握 Connection 與 Recordset 兩大核心,即可在 Delphi 開發無 BDE 相依的資料庫應用,下一篇將呈現完整 CRUD 實戰代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved