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

Delphi 動態建立 BDE 別名:單機版 Paradox/dBase 與 SQL Server 範例

     編輯:Delphi

背景

BDE (Borland Database Engine) 程式部署時常面臨「找不到別名」錯誤。解決方案:程式啟動時動態在記憶體建立別名,免去用戶端手動設定。

1. 單機版資料庫

使用 Session.AddStandardAlias,需指定別名名稱、資料庫目錄路徑、驅動程式類型('PARADOX'、'DBASE'、'ASCIIDRV' 等)。

procedure TForm1.FormCreate(Sender: TObject);
begin
  with Session do
  begin
    ConfigMode := cmSession; // 僅影響當前 Session
    try
      // 建立 Paradox 別名,資料庫放在程式目錄下
      AddStandardAlias('MyAppDB', ExtractFilePath(ParamStr(0)), 'PARADOX');
    finally
      ConfigMode := cmAll;
    end;
  end;
end;

2. SQL Server / InterBase 等伺服器資料庫

使用 Session.AddAlias 搭配 TStringList 傳遞連線參數(SERVER NAME, USER NAME 等)。

procedure TForm1.FormCreate(Sender: TObject);
var
  Params: TStringList;
begin
  Params := TStringList.Create;
  try
    with Params do
    begin
      Add('SERVER NAME=MySQLServer:/dbpath/mydb.gdb'); // InterBase 範例
      Add('USER NAME=SYSDBA');
      Add('PASSWORD=masterkey');
    end;
    Session.AddAlias('MySQLAlias', 'INTRBASE', Params); // 驅動名稱需與 BDE 設定一致
  finally
    Params.Free;
  end;
end;

3. 永久儲存別名至 BDE 設定檔

動態建立的別名預設僅存在記憶體,程式結束即消失。若需永久保存,呼叫 Session.SaveConfigFile。

Session.SaveConfigFile; // 寫入 IDAPI32.CFG / IDAPI.CFG

注意事項

  • ConfigMode := cmSession 確保不修改全域 BDE 設定,避免衝突。
  • 驅動名稱(如 'PARADOX'、'INTRBASE'、'MSSQL')必須與目標機器 BDE 管理員中安裝的驅動名稱完全一致。
  • 現代專案建議改用 FireDAC、ADO、dbExpress 等新世代資料存取技術,BDE 已停止維護。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved