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