部署 Access 應用時,強制使用者配置 ODBC 系統資料源 (DSN) 極不友善。採用「無 DSN 連接字串」直接指定 MDB 檔案路徑,實現綠色部署。
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;
| 參數 | 值 | 說明 |
|---|---|---|
| Provider | Microsoft.Jet.OLEDB.4.0 | Access 2000-2003 (MDB) 引擎,32 位元 |
| Provider | Microsoft.ACE.OLEDB.12.0 | Access 2007+ (ACCDB) 引擎,支援 64 位元 |
| Data Source | 完整檔案路徑 | MDB/ACCDB 檔案絕對路徑 |
| User ID | Admin | 若資料庫有密碼需加上 |
| Jet OLEDB:Database Password | 密碼 | 資料庫開啟密碼 |
ExtractFilePath(Application.ExeName) 完美適應任意安裝目錄https://7071976.blog.51cto.com/7061976/1220029
此技巧是 Delphi + Access 專案部署的「必殺技」,徹底解決「客戶電腦沒配 DSN 就跑不起來」的經典痛點。