uses BDE;
{Without the Registry:}procedure TForm1.Button1Click(Sender: TObject);
var
ThisVersion: SYSVersion;
begin
DbiGetSysVersion(ThisVersion);
ShowMessage('BORLAND DATABASE ENGINE VERSION = ' + IntToStr(ThisVersion.iVersion));
end;
{With the Registry:}function GetBDEVersion: string;
var
h: hwnd;
ptr: Pointer;
proc: TSYSVerProc;
ver: SYSVersion;
idapi: string;
reg: TRegistry;
begintry
reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey('CLSID\{FB99D710-18B9-11D0-A4CF-00A024C91936}\InProcServer32', False);
idapi := reg.ReadString('');
reg.CloseKey;
finally
reg.Free;
end;
Result := '<BDE Bulunamadi>';
h := LoadLibrary(PChar(idapi));
if h <> 0 thentry
ptr := GetProcAddress(h, 'DbiGetSysVersion');
if ptr <> nilthenbegin
proc := ptr;
Proc(Ver);
Result := IntToStr(ver.iVersion);
Insert('.', Result, 2);
end;
finally
FreeLibrary(h);
end;
end;
Программа на Delphi, которая получает версию Borland Database Engine (BDE), установленную на системе. Есть две версии: одна без использования реестра и другая с использованием реестра.
Версия без Реестра
Первый процедура Button1Click получает версию BDE, используя функцию DbiGetSysVersion из библиотеки BDE. Затем она отображает сообщение об ошибке, содержащее номер версии.
Работает следующим образом:
procedureTForm1.Button1Click(Sender:TObject);varThisVersion:SYSVersion;beginDbiGetSysVersion(ThisVersion);ShowMessage('BORLAND DATABASE ENGINE VERSION = '+IntToStr(ThisVersion.iVersion));end;
Версия с Реестром
Вторая функция GetBDEVersion получает версию BDE, прочитав значение реестра. Она сначала открывает ключ реестра для CLSID (классификатора) BDE, читает путь к DLL-библиотеке в-PROCESS из этого ключа, загружает DLL с помощью LoadLibrary и получает адрес функции DbiGetSysVersion из DLL с помощью GetProcAddress. Затем она вызывает DbiGetSysVersion с полученным номером версии.
Обратите внимание, что в второй версии функция возвращает '' если не может найти ключ реестра BDE или загрузить DLL. Это потому, что функция DbiGetSysVersion может не быть доступна на всех системах, где установлен BDE.
В статье рассматриваются две версии приложения BDE (Borland Database Engine) - без использования реестра и с использованием реестра, демонстрируя примеры кода на языке Delphi для получения информации о версии BDE.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.