Страница 1 из 1

Программно узнать версию сервера

Добавлено: 10 авг 2009, 09:45
FMA
Как узнать программно версию запущенного сервера FireBird-a?
Дело в том, что использую FireBird версии 2.1.2, а у пользователя есть еще используемая лицензионная прога под управлением версии 1.5.
При этом оба сервера стоят на одном ПК, и он их попеременно запускает для работы то в одной, то в другой проге.
Разносить версии по портам для него не выход (такой уж пользователь). Поэтому для избежания некорректной работы моей проги, мне нужно при запуске до соединения с сервером узнать какая его версия сейчас запущена.
То что сервер запущен узнать не проблема, но пока незнаю как определить версию.

Надеюсь на помощь и понимание.

Re: Программно узнать версию сервера

Добавлено: 10 авг 2009, 10:16
hvlad
Т.е. API сервера даже краем глаза не смотрел (я уже не говорю о документации), а "проги" уже клепаешь и продаёшь ?..
Embedded не подойдёт для твоей "проги" ?

Re: Программно узнать версию сервера

Добавлено: 10 авг 2009, 11:11
FMA
Вариант с Embedded в данном случае не подходит.
С API сервера пока не приходилось работать, а та документация что выложена по API на сайте к сожалению на английском и примеры на C++. А с тем и другим у меня маленькие проблемки. :(
Т.ч. если не затрудит укажите, пожалуйста, еще источники по решению вышеуказанной проблемы.
Ну или есть ли у кого-нибудь примеры работы с API сервера для Delphi? Буду очень признателен.

Re: Программно узнать версию сервера

Добавлено: 10 авг 2009, 14:01
Dimitry Sibiryakov
Если действительно хочешь версию, рой в сторону isc_info_firebird_version, но лично я бы просто создал БД с ODS от 2.1 и при попытии подключиться к ней через 1.5 получал бы отлуп по неверной версии.

Хотя нет, вру, я бы скорее сделал программу, которая работает с 1.5...

Re: Программно узнать версию сервера

Добавлено: 10 авг 2009, 16:10
kdv
Вариант с Embedded в данном случае не подходит.
интересно, почему? И почему нельзя развести разные версии ФБ по разным портам? Про разные ODS Влад сказал, а я промолчу.

Re: Программно узнать версию сервера

Добавлено: 10 авг 2009, 16:19
Guardian777
Если ты используешь компоненты FIBPlus, то у предка компонента TpFIBDataBase есть свойство FBVersion, котрое можно получить после открытия БД. Но я не уверен в том успевает ли сервер испортить метаданные. У кого по этому поводу есть достоверные сведения ?

Re: Программно узнать версию сервера

Добавлено: 13 авг 2009, 09:05
skin
Можно возспользоваться TIBServerProperties (IBX) или TpFIBServerProperties (FIBPlus) с их помощью можно и версию сервера узнать и ещё много чего другого интересного.

P.S. Два сервера на разных портах не подходят.. Embedded не подходит... что религия такая? :)

Re: Программно узнать версию сервера

Добавлено: 13 авг 2009, 20:32
FMA
Embedded не подходит, т.к. с БД может работать одновременно несколько клиентов по сети.
"Развод" по нескольким портам не подходит, т.к. не предусмотрел в проге работу с указанием порта (два FireBird-a пока частный случай, в дальнейшем предусмотрю), а пользователи в массе своей не шибко во всем этом смыслят.
Под версию 1.5 не перепишу, т.к. программой пользуются уже 10-ки пользователей. :)

Всем спасибо, проблема решена!!!

Re: Программно узнать версию сервера

Добавлено: 14 авг 2009, 08:46
skin
не предусмотрел в проге работу с указанием порта
порт указывается в строке подключения
<server_name>[/<port>]:<database_alias>
например:
localhost/3052:my_database