임펠리테리입니다. 정말 오랜만에 팁을 올리죠? ^^;;
오늘의 팁은 BDE 알리아스의 실제 경로를 알아내기입니다. 실전에서 꽤 쓰일 일들이 있겠지요?
BDE 알리아스의 실제 경로를 알아내려면 BDE API 함수인 DbiGetDatabaseDesc() 함수를 호출하면 됩니다. 그런데 이 함수는 알리아스의 경로 뿐 아니라 알리아스의 DB 타입을 포함한 알리아스의 정보들을 알아내는 함수랍니다. 거기다 BDE API 함수를 사용하려면 초기화하기 위해 DbiInit() 함수, 그리고 클린업을 위해 DbiExit() 함수를 호출해야 하는 등 그냥 사용하기엔 조금 번거롭습니다. 그래서... 아래에 간단히 한방에~ 안시스트링으로 BDE 알리아스의 경로를 알아내는 함수를 만들어봤습니다.
AnsiString __fastcall GetDbAliasPath(AnsiString AliasName)
{
Word rslt = DbiInit(NULL);
if(rslt != DBIERR_NONE) return "";
DBDesc Desc;
rslt = DbiGetDatabaseDesc(AliasName.c_str(), &Desc);
if(rslt != DBIERR_NONE) return "";
AnsiString Result = Desc.szPhyName;
DbiExit();
return Result;
}
별로 복잡하지는 않지요? 그럼 도움되시길...
|