For many reasons you may need the installed BDE (Borland Database Engine) version. One of them (the main one probably) is that BDE versions are not always compatible with each other. Therefore you may want to use different code/components at runtime.
Use the code below to determine what version of BDE is installed on the system. The first snippet does not use the registry while the second one does.
1. Without quering the Windows system registry:
var BDEVersion: SYSVersion; ... DbiGetSysVersion(BDEVersion); // BDEVersion.iVersion - BDE version ...
2. With the use of the Windows system registry:
uses BDE, Registry, Windows; ... function GetBDEVersion: string; var hDll: hWnd; pFunc: Pointer; sIdAPI: string; SysVer: SYSVersion; SysVerProc: TSYSVerProc; begin Result := ''; with TRegistry.Create do try RootKey := HKEY_CLASSES_ROOT; if OpenKey('CLSID{FB99D710-18B9-11D0-A4CF-00A024C91936}InProcServer32', False) then begin sIdAPI := ReadString(''); CloseKey; end; finally Free; end; hDll := LoadLibrary(PChar(idapi)); if hDll <> 0 then try pFunc := GetProcAddress(hDll, 'DbiGetSysVersion'); if pFunc <> nil then begin SysVerProc := pFunc; SysVerProc(SysVer); Result := IntToStr(SysVer.iVersion); Insert('.', Result, 2); end; finally FreeLibrary(hDll); end; end;
Tags: bde, borland, borland database engine, code, database, Delphi, engine, faq, free, get, retrieve, source code, tip, trick, version
Merlin’s Delphi Forge
Leave a comment