Как узнать - установлена ли BDE

Вариант 1.

Проверить реестр:


with TRegistry.create do
begin
Rootkey := HKEY_LOCAL_MACHINE;
OpenKey('SOFTWARE\BORLAND\DATABASE ENGINE', false);
CFGFile := ReadString('CONFIGFILE01');
Free;
end;

Вариант 2.

Следующая функция получает структуру SysVersion и записывает результаты в stringlist.


uses dbierrs, DBTables;

function fDbiGetSysVersion(SysVerList: TStringList): SYSVersion;
var
Month, Day, iHour, iMin, iSec: Word;
Year: SmallInt;
begin
Check(DbiGetSysVersion(Result));
if (SysVerList <> nil) then
begin
with SysVerList do
begin
Clear;
Add(Format('ENGINE VERSION=%d', [Result.iVersion]));
Add(Format('INTERFACE LEVEL=%d', [Result.iIntfLevel]));
Check(DbiDateDecode(Result.dateVer, Month, Day, Year));
Add(Format('VERSION DATE=%s', [DateToStr(EncodeDate
(Year, Month, Day))]));
Check(DbiTimeDecode(Result.timeVer, iHour, iMin, iSec));
Add(Format('VERSION TIME=%s', [TimeToStr(EncodeTime
(iHour, iMin, iSec div 1000, iSec div 100))]));
end;
end;
end;

Вызов этой функции выглядит следующим образом:


var
hStrList: TStringList;
Ver: SYSVersion;
begin
hStrList:= TStringList.Create;
try
Ver := fDbiGetSysVersion(hStrList);
except
ShowMessage('BDE not installed !');
end;
ShowMessage(IntToStr(Ver.iVersion));
Memo1.Lines.Assign(hStrList);
hStrList.Destroy;
end;

Возможные резултаты (отображаемые в memo-поле):


ENGINE VERSION=500 
INTERFACE LEVEL=500
VERSION DATE=09.06.98
VERSION TIME=17:06:13

 

Вариант 3.

IsBDEExist := (dbiInit(nil) = 0)
 
« Предыдущая статья   Следующая статья »