Появилась необходимость использовать IB. И появилась проблема.
Суть:
Ранее, при работе с Oracle для доступа к серверу в ADO необходимо было в вести пользователя и пароль, конечно предварительно создав в ODBC источник данных и все работало на ура. В этом случае все перемещения базы данных на сервере меня не волновали.
При попытке создать что-то подобное для IB обнаружилась проблема которая заключается в том, что для подключения к IB требуется указать физический путь к базе данных (файлу) на сервере. Получается, что если администратор изменит местоположение базы на сервере то мой клиент загнется? В чем грабли, что я не так делаю?
Здравствуйте, DAChe, Вы писали:
DAC>Ранее, при работе с Oracle для доступа к серверу в ADO необходимо было в вести пользователя и пароль, конечно предварительно создав в ODBC источник данных и все работало на ура. В этом случае все перемещения базы данных на сервере меня не волновали.
DAC>При попытке создать что-то подобное для IB обнаружилась проблема которая заключается в том, что для подключения к IB требуется указать физический путь к базе данных (файлу) на сервере. Получается, что если администратор изменит местоположение базы на сервере то мой клиент загнется? В чем грабли, что я не так делаю?
Бери FB 1.5 и используй альясы вместо жестких физических путей.
Подключаюсь я к IB через ADO.
Путь требуется вводить при создании источника данных ODBC, а при настройки подключения в ADOConecction вводится алиас источника ODBC. Так, что тут мне кажется версия сервера роли не играет. Сам я пользую FireBird 1.0. Возможно нужен другой драйвер ODBC. Я использую от easysoft для IB6.
Здравствуйте, DAChe, Вы писали:
DAC>Я видимо не правильно поставил вопрос.
DAC>Подключаюсь я к IB через ADO. DAC>Путь требуется вводить при создании источника данных ODBC, а при настройки подключения в ADOConecction вводится алиас источника ODBC. Так, что тут мне кажется версия сервера роли не играет. Сам я пользую FireBird 1.0. Возможно нужен другой драйвер ODBC. Я использую от easysoft для IB6.
Гм. А если вместо пути к БД в параметрах ADOConnection (строка Data Source= ... кажется?) вписать таки алиас от FB? Не прокатит?
Здравствуйте, DAChe, Вы писали:
DAC>Появилась необходимость использовать IB. И появилась проблема. DAC>Суть: DAC>Ранее, при работе с Oracle для доступа к серверу в ADO необходимо было в вести пользователя и пароль, конечно предварительно создав в ODBC источник данных и все работало на ура. В этом случае все перемещения базы данных на сервере меня не волновали.
DAC>При попытке создать что-то подобное для IB обнаружилась проблема которая заключается в том, что для подключения к IB требуется указать физический путь к базе данных (файлу) на сервере. Получается, что если администратор изменит местоположение базы на сервере то мой клиент загнется? В чем грабли, что я не так делаю?
DAC>Заранее благодарен за ответ.
Сделай у клиента возможность самому настраивать строку подключения, а её храни в реестре
Здравствуйте, Bigger, Вы писали:
DAC>>При попытке создать что-то подобное для IB обнаружилась проблема которая заключается в том, что для подключения к IB требуется указать физический путь к базе данных (файлу) на сервере. Получается, что если администратор изменит местоположение базы на сервере то мой клиент загнется? В чем грабли, что я не так делаю?
B>Сделай у клиента возможность самому настраивать строку подключения, а её храни в реестре
Смысл? Откуда клиент узнает о перемещении базы админом? А вопрос хранения строки подключения — дело десятое.
Мне все же кажется, что решение — на поверхности.
Можно попробовать использовать алиасы FB 1.5 и в строке коннекта прописать что-то вроде: "Data Source=ServerName:AliasName". Таким образом при перемещении базы админ должен будет лишь исправить aliases.conf, причем для пользователей это пройдет незаметно.
DM>Смысл? Откуда клиент узнает о перемещении базы админом? А вопрос хранения строки подключения — дело десятое.
Если не хочется переходить на FB1.5 можно еще организовать подобие алиасов, используя для этого симлинки каталогов. Не знаю, как тым это сработает под NTFS, но под ext2 работает замечательно.
Коннектишься тогда к /db/MyDataBase/MyDataBase.gdb а на серваке этот MyDataBase.gdb кладушь куда вздумается, и симлинк в /db.