BDE (Borland Database Engine) 程式部署時常面臨「找不到別名」錯誤。解決方案:程式啟動時動態在記憶體建立別名,免去用戶端手動設定。
使用 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;
使用 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;
動態建立的別名預設僅存在記憶體,程式結束即消失。若需永久保存,呼叫 Session.SaveConfigFile。
Session.SaveConfigFile; // 寫入 IDAPI32.CFG / IDAPI.CFG
ConfigMode := cmSession 確保不修改全域 BDE 設定,避免衝突。'PARADOX'、'INTRBASE'、'MSSQL')必須與目標機器 BDE 管理員中安裝的驅動名稱完全一致。