Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Проверка установки BDE


Автор: Albinos_x 23.4.2005, 11:09
пытаюсь проверить установку BDE
так

Код

IsBDEExist := (dbiInit(nil) = 0)

{взял из DRKB}
но dbiInit(nil) не понимается
Подскажите, пожалуйста, как решить проблему...

Заранее спасибо!

Автор: SPrograMMer 23.4.2005, 13:16
Номер раз:
Код

//Читаем ключ в реестре: 
RootKey := HKEY_LOCAL_MACHINE;
OpenKey(`SOFTWARE\Borland\Database Engine`, False);
try
  s := ReadString(`CONFIGFILE01`);
  //BDE установлена
finally
  CloseKey;
end;

Номер два:
Код

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;
Function Be_BDE_Or_Not_BE:Boolean;
var
  hStrList: TStringList;
  Ver: SYSVersion;
begin
  hStrList:= TStringList.Create;
  try
    Ver := fDbiGetSysVersion(hStrList);
    Result:=True;
  except
    Result:=False;
    ShowMessage('BDE not installed !');
  end;
  ShowMessage(IntToStr(Ver.iVersion));
  Memo1.Lines.Assign(hStrList);
  hStrList.Destroy;
end; 

ЗЫ: с номера два моно половину выкинуть smile самому влом редактировать... smile

Автор: Albinos_x 23.4.2005, 13:32
Спасибо...
Нашёл решение проблемы:
Чтобы dbiInit(nil) понималось необходимо добавить модуль DBIErrs

Автор: Alex 25.4.2005, 18:47
Код
function HaveBdeDrivers : Boolean;
//По наличию драйверов BDE определяет ее присутствие;
var l : TStringList;
begin
 Result := True;
 l := TStringList.Create;
 try
  try
   Session.GetDriverNames(l);
  except
   Result := False;
  end;
finally
  l.Free;
end;
end;

http://forum.vingrad.ru/index.php?showtopic=31030&view=findpost&p=227592
Добавлено @ 18:48
http://vingrad.ru/DELPHI-DLP-001620

Автор: Albinos_x 27.4.2005, 18:39
Спасибо... Интересный вариант...
Мной используемый, тоже работает. Проверено мной под 98 и ХР...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)