非強制建立(首次開啟資料表自動建立臨時實例),但掌握連線持久化、登入控制、別名管理、事務邊界等核心能力時必須顯式建立。設計期可預設屬性值、編寫 OnLogin 事件。
| 屬性 | 核心語義 | 關鍵約束 |
|---|---|---|
DatabaseName | 邏輯資料庫名,供 DataSet 參考 | Connected=True 時不可修改 |
AliasName | BDE 別名,提供預設參數 | 設定 DriverName 會清空此屬性 |
DriverName | 直接指定驅動 | 設定 AliasName 會清空此屬性 |
Params | 連線參數集(伺服器/資料庫/用戶/密碼) | 可用參數編輯器修改,預設來自 BDE |
Connected | 連線狀態指示/控制 | 寫 True 即建立連線,無需開啟資料表 |
KeepConnection | 無資料表開啟時是否保持連線 | True 避免重複登入開銷,適用頻繁開關表場景 |
LoginPrompt | 是否彈出登入對話框 | False 時從 Params 讀取憑證 |
TransIsolation | 事務隔離等級 | 預設 tiReadCommitted,詳見隔離等級支援表 |
StartTransaction:在指定隔離等級下開啟事務,嵌套調用拋出異常。Commit:提交並結束事務,持久化所有修改。Rollback:回滾並結束事務,撤銷所有修改。觸發條件: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 刷新等進階場景。