Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > Версия FB по содержимому папки инсталляции


Автор: RusMikle 19.4.2022, 11:38
Всем доброго времени суток,

если на компе установлено несколько версий FB нужно точно убедиться что папка в которую установлен Firebird это тот фиребирд который сейчас запущен (достаточно что та же версия).
Алгоритм такой:
Запросом получаем версию FB, далее сканируем ветку реестра \SYSTEM\CurrentControlSet\Services на текст Firebird (в моём случае сервис всегда содержит это слово). 
Если нашли проверяем содержимое ключа "ImagePath" на наличие "fbserver.exe" или "firebird.exe" и далее вытаскиваем path из пути к ним.
Имея путь сканируем firebird.conf, ищем RemoteServicePort и сверяем порт с тем с которым мы работаем в данный момент. Если порт совпадает то путь это нужный путь. Если нет но сканируем дальше.
Сие работает только если все FB сидят на различных портах. Если они сидят на одном порту, и какой то из них остановлен в данный момент, то такой алгоритм неработает.

Посоветуйте, как начиная с FB2.5 и далее, имея путь к папке определить версию FB в ней лежашую.

Спасибо.


Автор: Akina 19.4.2022, 20:12
Имея путь к папке, надо просто найти исполняемый модуль в этой папке и посмотреть его свойства. Запуск для этого вовсе не требуется.

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