Чтение онлайн

ЖАНРЫ

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

Версия 1.5 и более поздние учитывают наличие корректировок в API и инсталлируются С OldParameterOrdering = 0 (False). Установите этот логический параметр В True (1), если вам нужно вернуться к старым условиям для совместимости с существующим кодом.

Параметры, связанные с внешними объектами

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

Работа со встроенным сервером

Встроенный сервер

для Windows имеет те же возможности, что и Суперсервер, за исключением поддержки множества пользователей и защиты по паролю. Клиентская библиотека включена в сервер, и эта объединенная пара выполняет работу как клиента, так и сервера для одного и только одного подключенного приложения.

! ! !

ПРИМЕЧАНИЕ. Встроенный сервер для Windows не поддерживается в версиях, предшествующих версии 1.5.

. ! .

Когда встроенный сервер отыскивает корневой каталог его инсталляции, он игнорирует любые записи в реестре и переменную окружения FIREBIRD. Он трактует как корневой тот каталог, в котором размещается его двоичный файл (fbembed.dll, переименованный в fbclient.dll или gds32.dll).

Вы должны иметь полный набор файлов, требуемых для встроенного сервера, в корневом каталоге каждого встроенного приложения. Если используются внешние файлы (поддержка международных языков, библиотеки UDF, библиотеки фильтров BLOB), встроенному серверу нужно найти в этом корневом каталоге или ниже firebird.conf, а в firebird.conf параметр RootDirectory должен указывать на каталог, в котором располагается файл библиотеки встроенного сервера. См. пример в разд. "Встроенный сервер" главы 1.

Запуск встроенного сервера

Единственным допустимым протоколом соединения является "локальный Windows". Встроенный сервер не поддерживает локальный loopback-протокол или любой из сетевых протоколов.

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

Приложения

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

* размещение и именование библиотеки встроенного сервера;

* жестко закодированный путь к базе данных;

* написанные вами утилиты, которые используют удаленный менеджер сервисов;

* безопасность и целостность как следствие того, что интерфейс приложения не проверяет полномочия пользователя по доступу к серверу.

Размещение и переименование библиотеки

Для встроенного сервера- распространяемого как fbembed.dll- нет проблем с переименованием этой библиотеки в имя gds32.dll или fbclient.dll, или любое другое нужное имя. Для того чтобы пакет встроенного сервера был самодостаточным, эта библиотека должна находиться в том же каталоге, что и выполняемый модуль приложения, а дополнительные файлы и каталоги для функций сервера размещались так, как рекомендовано в главе 1.

Если у вас на одной и той же машине много приложений

встроенного сервера, которым нужна для использования эта библиотека, то существует несколько вариантов.

* Поместите копию библиотеки в корневой каталог каждого приложения и разместите дополнительные файлы и каталоги так, как рекомендовано в главе 1. Это наиболее предпочитаемый вариант, т. к. он делает "пакет" простым для поставок при инсталляции и независимым от структуры существующей файловой системы. При этом если вы хотите устанавливать множество пакетов встроенного сервера на одной и той же рабочей станции, то появится проблема избыточности.

* Поместите единственную копию библиотеки в некоторый специальный каталог- с дополнительными файлами и каталогами, корректно поименованными и размещенными относительно этой библиотеки - и создайте в реестре ключ, который будет читать каждое приложение в его аргументы загрузки библиотеки. Возможно, это менее привлекательно с точки зрения перспектив переносимости, но это упростит проблемы конфликтов и обновления.

* Поместите библиотеку- подходящим образом именованную- в системный каталог и используйте переменную пути FIREBIRD для указания корня древовидной структуры, где расположены дополнительные файлы и каталоги. Этот вариант будет работать только в системе, где не выполняется полный сервер Firebird версии 1.5 или выше. К тому же он повышает вероятность перезаписи этой библиотеки другими инсталляторами.

! ! !

ПРИМЕЧАНИЕ. Помните, что некоторые продукты Borland жестко запрограммированы на распознавание внутренних версий строк только для Borland. Даже если имя и размещение в файловой системе являются "корректными" для элементов Borland, ограничение строки версии может сделать ваше приложение несовместимым со встроенным сервером. Например, приложения, скомпилированные с использованием оригинальных компонентов InterBaseXpress (IBX), не будут соединяться cfbembed.dll без внесения изменений.

. ! .

Жестко закодированные пути к базе данных

Строка соединения, например, WlNSERVER:C:\Program Files\Firebird\Firebird 1 5 \employee.fdb, жестко закодированная в вашем приложении, явно вызовет проблемы при установке вашего программного обеспечения на другой машине. Ваш код должен адаптироваться к размещению базы данных, что неизвестно во время проектирования и часто ограничено локальным (не localhost) соединением. Это не является проблемой, появившейся в случае со встроенным сервером. Нам часто нужно поставлять наше программное обеспечение приложений клиент/сервер с предоставлением пользователям или системным администраторам возможности конфигурирования размещения баз данных в сети и в файловой системе.

Система алиасов баз данных позволяет вам компилировать приложения с "мягкими" путями файловой системы к базе данных. Каждый раз, когда код приложения ссылается на сегмент пути в строке соединения, то используется алиас, и определение размещения в файловой системе становится задачей поиска установок в aliases.conf.

Предположим, например, что вы решили использовать EMPDATA В качестве алиаса. В файле aliases.conf на вашей машине разработки вы указали для алиаса ваш путь:

EMPDATA = C:\Program Files\Firebird\Firebird_1_5\employee.fdb На другой машине это может быть:

Поделиться с друзьями: