Проверьте наличие баз данных Firebird

Наш установщик программного обеспечения устанавливает firebird, если его нет в системе, и, поскольку мы преследуем сертификат Win, деинсталлятор должен удалить его, но мы хотим убедиться, что даже если его установил установщик, если какое-либо новое программное обеспечение используя его сейчас с новой базой данных, мы бы не удаляли его (Firebird).

Вопрос в следующем: можно ли запросить сервер и узнать, какие базы данных работают на нем? Это делается для того, чтобы мы могли автоматически решить, можем ли мы удалить базу данных или нет.

Немного дополнительной информации: наш установщик — Innosetup, и он уже хорошо справляется со своей задачей — мы просто пытаемся сделать его умнее из-за логотипа Windows «Разработано» или «Совместимо с».


person ronaldosantana    schedule 02.06.2010    source источник


Ответы (1)


Вы можете запросить у сервера другие базы данных, подключенные через таблицы MON$. Увы, это сработает только в том случае, если соединение активно в момент выполнения деинсталлятора.

Я бы порекомендовал установить Firebird в пользовательский каталог и использовать пользовательский номер порта. Таким образом, вы можете безопасно удалить сервер позже.

person Andrej Kirejeŭ    schedule 02.06.2010
comment
Привет - спасибо за ответ и извините, если комментарий ниже слишком глуп: я пытаюсь использовать таблицы MON$ для проверки другой базы данных, но, например, MON$DATABASE показывает только фактическую базу данных, которая была таблицей MON$ проживать. Ближе всего к этому я подобрался с MON $ ATACHMENTS - когда у меня есть два подключения, он показывает это ... но для одной и той же базы данных. Другой подход, установка Firebird в пользовательский каталог, мы попробуем. Спасибо. - person ronaldosantana; 03.06.2010
comment
Да. Я не прав. Через MON$DATABASE видно только ваше соединение. - person Andrej Kirejeŭ; 03.06.2010
comment
Я принимаю ваш ответ по второму абзацу. Нам нужно будет изменить наш установщик — так, чтобы установленный Firebird был нашим firebird, и тогда мы можем делать все, что нам нужно. - person ronaldosantana; 13.07.2010