Следующая функция получает структуру 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) thenbeginwith SysVerList dobegin
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
Программистский вопрос на Delphi!
Проверить, установлен ли BDE (Borland Database Engine), можно создать компонент TSession и затем вызвать свойство Connected сессии. Если BDE не установлен, это вызовет исключение.
Вот как вы можете модифицировать свой код для выполнения этой задачи:
varhStrList:TStringList;Ver:SYSVersion;begintryTSession.Create(nil);// создаем компонент TSessionhStrList:=TStringList.Create;tryVer:=fDbiGetSysVersion(hStrList);ShowMessage(IntToStr(Ver.iVersion));Memo1.Lines.Assign(hStrList);exceptonE:ExceptiondobeginifE.ClassType=EInvalidBDEthen// проверка на неустановленное BDEShowMessage('BDE не установлен!');elseraise;end;finallyhStrList.Free;end;exceptShowMessage('Ошибка создания TSession: '+LastException.Message);end;end;
В этом коде мы создаем компонент TSession и пытаемся использовать его. Если BDE не установлен, исключение типа EInvalidBDE будет вызвано, которое мы поймем и отобразим сообщение о том, что BDE не установлен.
Обратите внимание, что если вы используете Delphi 7 или позднее, вам может потребоваться использование TDBSession вместо TSession.
Также я заметил, что ваша функция fDbiGetSysVersion возвращает структуру SYSVersion, которая содержит информацию о версии базы данных. Вы отображаете эту информацию в поле Memo. Если BDE не установлен, вы получите исключение при вызове fDbiGetSysVersion, поэтому мы поймем это исключение и отобразим сообщение о том, что BDE не установлен.
Надеюсь, это поможет! Пожалуйста, дайте мне знать, если у вас есть какие-либо дальнейшие вопросы.
Статья описывает функцию для проверки установки BDE (Borland Database Engine) и вывода информации о ее версии, дате и времени установки на экране в виде списка строк.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS