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

Delphi 脫離 ODBC 資料源直連 Access 資料庫:ConnectionString 動態構建技巧

     編輯:Delphi

部署 Access 應用時,強制使用者配置 ODBC 系統資料源 (DSN) 極不友善。採用「無 DSN 連接字串」直接指定 MDB 檔案路徑,實現綠色部署。

核心思路

  1. 獲取程式執行目錄,構造 MDB 絕對路徑
  2. 構建完整 ConnectionString:Provider + Data Source
  3. 運行時動態指派給 ADOConnection

關鍵程式碼

procedure TForm2.FormActivate(Sender: TObject); 
var sDBPath: string; 
begin 
  { 1. 獲取程式目錄下的 students.mdb }
  sDBPath := ExtractFilePath(Application.ExeName) + 'students.mdb'; 
  
  { 2. 關閉現有連接與查詢 }
  ADOQuery1.Active := False; 
  con1.Connected := False; 
  ADOQuery1.SQL.Clear; 
  ADOQuery1.SQL.Add('select * from admins'); { 視初始需求決定 }
  
  { 3. 構建無 DSN 連接字串 }
  { Provider 必須寫完整:Microsoft.Jet.OLEDB.4.0 (Access 引擎) }
  con1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + sDBPath + ';'; 
  
  { 4. 開啟連接與查詢 }
  con1.Connected := True; 
  ADOQuery1.Active := True; 
end;

ConnectionString 參數解析

參數值說明
ProviderMicrosoft.Jet.OLEDB.4.0Access 2000-2003 (MDB) 引擎,32 位元
ProviderMicrosoft.ACE.OLEDB.12.0Access 2007+ (ACCDB) 引擎,支援 64 位元
Data Source完整檔案路徑MDB/ACCDB 檔案絕對路徑
User IDAdmin若資料庫有密碼需加上
Jet OLEDB:Database Password密碼資料庫開啟密碼

部署優勢

  • 零配置:使用者無需進入「控制台 → 系統管理工具 → ODBC 資料來源」
  • 綠色軟體:EXE + MDB 放同目錄即可執行
  • 多版本共存:不同專案各用各自 MDB,互不干擾
  • 相對路徑支援:配合 ExtractFilePath(Application.ExeName) 完美適應任意安裝目錄

範例下載

原文出處

https://7071976.blog.51cto.com/7061976/1220029

此技巧是 Delphi + Access 專案部署的「必殺技」,徹底解決「客戶電腦沒配 DSN 就跑不起來」的經典痛點。

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