BDE를 사용한 애플리케이션을 만들어서 배포하려면, BDE를 이용한 개발에서 사용했던 알리아스를 배포 대상 피씨에도 똑같이 생성해주어야 합니다. 물론 인스톨실드같은 설치프로그램에서 지원해주기도 하지만 때로는 인스톨실드를 쓰지 않고 실행파일만 배포하는 경우도 있고 하기 때문에, 애플리케이션에서 알리아스를 생성해주어야 할 수도 있습니다.
다음은 하영재님이 델파이코리아에 올리신 소스입니다. 델파이에서 동적으로 BDE 알리아스를 생성하는 함수입니다.
uses BDE;
procedure AddBDEAlias(sAliasName, sAliasPath, sDBDriver: string);
var
h: hDBISes;
begin;
DbiInit(nil);
DbiStartSession('dummy', h, '');
DbiAddAlias(nil, PChar(sAliasName), PChar(sDBDriver), PChar('PATH:' + sAliasPath), true);
DbiCloseSession(h);
DbiExit;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
AddBDEAlias('TestDB','C:\Temp', 'DBASE' );
end;
그리고 다음은, 위의 델파이 소스를 그대로 C++로 바꾼 것입니다.
#include
void AddBDEAlias(AnsiString sAliasName, AnsiString sAliasPath, AnsiString sDBDriver)
{
hDBISes h;
DbiInit(NULL);
DbiStartSession("dummy", h, "");
DbiAddAlias(NULL, sAliasName.c_str(), sDBDriver.c_str(), ("PATH:" + sAliasPath).c_str(), true);
DbiCloseSession(h);
DbiExit;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AddBDEAlias("ImpTestDB","C:\\Temp", "DBASE");
}
|