powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поиск установленных клонов InterBase и определение версии
17 сообщений из 17, страница 1 из 1
Поиск установленных клонов InterBase и определение версии
    #32535054
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно сабж.

Необходимо при инсталляции программы определить установлен ли уже на машине клиента один из клонов InterBase, если установлен, то какой клон и какой он версии.

Проблема в следующем, даже если мы нашли файл gds32.dll и определили его версию, нет никакой гарантии, что СУБД установлена (мог остаться "мусор" при неудачной деинсталляции). Для FireBird эту проблему удалось обойти (поиском сопутствующих файлов по ключам указанным в реестре), как с уверенностью констатировать, что стоит InterBase или Yaffil?

А может быть есть более простой и изящный путь решения проблемы?
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32535427
Даниил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем?
Чтобы узнать установлено что-то или нет, можно попытаться подсоединиться к своей базе.
А версия gds32.dll не особо важна, если развернуть свою базу из бекапа.
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32535970
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Даниила:

Ну хотя бы затем, чтобы база, использующая в ХП специфические возможности FB 1.5 не запустилась под управлением СУБД FB 1.0, что нежелательно так как вылет из клиента гарантирован
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32536047
Даниил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Михаила:

Если ваша база работает только под FB 1.5, а на компутере установлен FB 1.0, то есть два выхода:
1) Программа откажется работать (скажет пользователю - ставь 1.5, и тогда буду работать);
2) Программка перепишет ХП (уберет из нее все специфики 1.5), чтобы та заработала как надо (если конечно это возможно).

Что касается второго пункта, думаю что переписать ХП будет проблематично. Ведь не зря же вы использовали специфические возможности 1.5 ?

Теперь по поводу определения версии, касаемо первого вышеупомянутого пункта:
Можно сразу после подлючения к базе попытаться выполнить какой-нибудь запрос (вхолостую), использующий специфику FB 1.5. При появлении ошибки - рассказать пользователю, все что вы о нем думаете...
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32536179
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый простой вариант - сразу же после подключения к БД взять isc_database_info или TIBDatabaseInfo - и там посмотреть версию сервака. Однако Если есть Services Manager, то мона заюзать TIBServerProperties. Только вот если его нет - тогда все равно прийдется коннектиться. Поэтому для упрощения и унификации лучше заюзать сразу первый вариант.
_________________
"Hello, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32536304
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все это конечно хорошо, но программный продукт расчитан на юзеров, для которых слова FireBird и СУБД суть понятия ругательные и к реальной жизни не относящиеся. Поэтому хотелось бы свести инсталяцию к выбору пунктов типа: "У Вас установлена другая версия InterBase. Хотите установить нашу или будете работать на своей на свой страх и риск?".

Один из вариантов решения, который сейчас находится на этапе исследования и проработки - поиск по службам (процессам) в зависимости от операционки.

Вариант подключения к базе мне не очень нравиться, когда база большая (несколько Гб), копировать ее на диск, только затем, чтобы сказать пользователю, что он не прав как-то не очень этично, с точки зрения экономии времени пользователя. Опять же инсталятор написан на InstallShield, а возможности для маневра там ограниченные, приходится работать через dll.

Спасибо всем за идеи, если будут еще мысли - пишите.
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32536469
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает просто (без всяких вопрошаний) синсталиться, потом при подъеме провериться и, если версия ниже/не совпадает с требуемой, выдать сообщение а-ля "Для работы ПО необходим IB/FB версии х.х.х.х, а затем схлопнуться. Даный подход проверен на практике. Нареканий не вызвал. И полностью, IMHO, себя оправдывает.

З.Ы. А для проверки версии клиента, если БД на др. маше, использую обычный SearchPath.
_________________
"Hello, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32536517
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Ex_Soft:

"Без всяких вопрошаний" инсталиться низяяя, так хорошие мальчики себя не ведут, а что если:

1. Стоит и работает с СУБД сторонний продукт
2. Сторонний продукт для своей работы добавил в базу пользователей юзера
3. База стороннего продукта использует для своей работы оригинальные UDF

Если проинсталить новую версию в любом случае, то убьется работающая с СУБД программа, потеряется ее пользователь в базе пользователей да и UDF - ки окажутся неподключенными

:-)
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32536546
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так Вы хотите в одном флаконе чтобы был инстал Вашего ПО и IB/FB? Сорри что не догнал с первого раза [img= http://www.sql.ru/forum/images/biggrin.gif] Просто мы распространяем тока инстал нашего ПО. И поэтому ситуации, описанные Вами, не возникают. А IB/FB идет отдельно.
_________________
"Hello, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32536587
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Ex_Soft:

Ex_SoftПросто мы распространяем тока инстал нашего ПО. И поэтому ситуации, описанные Вами, не возникают. А IB/FB идет отдельно.

Я тоже сторонник такого подхода, но увы руководство не одобряет: мы изначально позиционировались на непродвинутого пользователя, знакомого только со своей предметной областью и теперь заставлять его разбираться, а что же такое СУБД и как ее устанавливать не совсем правильно. Тем более, что вышла уже не одна версия продукта и пользователи уже привыкли, что инсталятор подумал за них, а им уже остается только принять решение.

Спасибо всем за отклики. Пока получается работать со службами, но для Windows 98, надо будет еще и с процессами разобраться.
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32537071
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда можно наваять дрозофилу (с маленькой БД), к-я будет в процессе инсталяции определять наличие сервера/клиента, версию и т.д. и т.п. со всеми вытекающими. В конце инсталяции прибираемся. Нужно только, что бы инсталятор поддерживал скрипты или шо-то подобное.
_________________
"Hello, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32537247
x.diablo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем так усложнять?
я, например, просто ставлю ФБ1.5 на другой порт
firebird.conf: RemoteServicePort = 3056
коннекчусь к своему серверу: server/3056:path
а gds32.dll ложу в каталог с программой
и прикрасно уживаюсь с любым клоном интербейса(фб)

зы. а в локальных установках вообще лучше использовать embedded
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32537314
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДля FireBird эту проблему удалось обойти (поиском сопутствующих файлов по ключам указанным в реестре)

Ключей в реестре может и не быть, а сервер - стоять и работать. Это как тот суслик ;-)
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32537372
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для x.diablo

Оччень интересное предложение, мы даже провели небольшое совещание по возможности его внедрения. К сожалению некоторая специфика нашей работы не позволяет принять его, а то получилось бы довольно простое решение.


Для dimitr

dimitrКлючей в реестре может и не быть, а сервер - стоять и работать. Это как тот суслик ;-)

Существующий алгоритм поиска установленной версии клона InterBase работает не только по реестру, но и по ряду других признаков. Посему алгоритм получился довольно нетривиальными, но не всегда правильно работающим. Поэтому и появилась идея его упростить, в чем изначально и была задача :-) Пока пытаемся достучаться через службы, но для Win98 возможно появятся подводные камни.
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32537468
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Михаил К:
поиск это хорошо, но жестких критериев наличия базы как видите нет,
а то что хотите анализировать Вы - будут только "догадки".
Поставьте себя на место пользователя, если ему нужно будет установить ДВА
разных сервера (допустим, IB & FB)
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32537475
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил К. !

я за вами не успеваю модерировать. При цитировании используйте, пожалуйста, кнопку QUOT, а не SRC. А то если длинная цитата, приходится использовать горизонтальный скроллинг, а это никому не удобно. (Можете не заполнять "автора", если вам некогда ;)

Местный модератор.
...
Рейтинг: 0 / 0
Поиск установленных клонов InterBase и определение версии
    #32538071
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для vis:

visПоставьте себя на место пользователя, если ему нужно будет установить ДВА
разных сервера (допустим, IB & FB)

Для таких пользователей мы готовы оказать техническую консультацию, но таких у нас не много, основная масса желает нажать кнопку и "чтоб усе работало" :-)

Для fedd:

Виноват, исправлюсь
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поиск установленных клонов InterBase и определение версии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]