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

Delphi TDatabase 元件全解析:連線屬性、事務方法與 OnLogin 事件實戰

     編輯:Delphi

18.3.1.1 TDatabase:連線控制的中樞元件

非強制建立(首次開啟資料表自動建立臨時實例),但掌握連線持久化、登入控制、別名管理、事務邊界等核心能力時必須顯式建立。設計期可預設屬性值、編寫 OnLogin 事件。

七大關鍵屬性深度解析

屬性核心語義關鍵約束
DatabaseName邏輯資料庫名,供 DataSet 參考Connected=True 時不可修改
AliasNameBDE 別名,提供預設參數設定 DriverName 會清空此屬性
DriverName直接指定驅動設定 AliasName 會清空此屬性
Params連線參數集(伺服器/資料庫/用戶/密碼)可用參數編輯器修改,預設來自 BDE
Connected連線狀態指示/控制寫 True 即建立連線,無需開啟資料表
KeepConnection無資料表開啟時是否保持連線True 避免重複登入開銷,適用頻繁開關表場景
LoginPrompt是否彈出登入對話框False 時從 Params 讀取憑證
TransIsolation事務隔離等級預設 tiReadCommitted,詳見隔離等級支援表

三大事務核心方法

  • StartTransaction:在指定隔離等級下開啟事務,嵌套調用拋出異常。
  • Commit:提交並結束事務,持久化所有修改。
  • Rollback:回滾並結束事務,撤銷所有修改。

OnLogin 事件:動態憑證注入的標準入口

觸發條件:Connected=True 且 LoginPrompt=True。處理函式簽名:

type TLoginEvent = procedure(Database: TDatabase; LoginParams: TStrings) of object;

標準實作模式:

procedure TForm.DatabaseLogin(Database: TDatabase; LoginParams: TStrings);
begin
  LoginParams.Values['SERVER NAME'] := 'PROD_SERVER';
  LoginParams.Values['USER NAME'] := CurrentUser;
  LoginParams.Values['PASSWORD'] := SecureVault.GetPassword;
end;

返回時 Delphi 使用修改後參數建立連線。此機制完美支援運行期憑證解析、多租戶路由、Token 刷新等進階場景。

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