Шрифт:
Клиентская библиотека Firebird
Клиентская библиотека Firebird поставляется во множестве вариантов, которые обрабатывают идентичные API-функции приложений для версии сервера, к которому они обращаются. В табл. 7.1 в конце этой главы представлены имена и размещение этих библиотек.
В большинстве случаев клиентская библиотека использует клиентские сетевые протоколы операционной системы для связи с одним или более серверами Firebird, реализуя специальный интерфейс для архитектуры клиент-сервер Firebird на уровне приложения поверх сетевого протокола.
Важным является соответствие версии клиентской библиотеки и версии сервера. Используйте клиент версии 1.0.x с сервером версии 1.0.x и клиент версии 1.5 с сервером версии 1.5.
Помните также, что клиент версии 1.5 может быть инсталлирован в тот же каталог, что и клиент 1.0, а может быть поставлен в отдельный каталог. При переустановке новой версии изучите файл README и документацию по инсталляции (размещается в корневом каталоге инсталляции Firebird и в подкаталоге /doc на сервере), чтобы выяснить, какая информация данной книги устарела.
Все клиентские приложения и промежуточное программное обеспечение должны использовать API для доступа к базам данных Firebird. API Firebird имеет обратную совместимость с API InterBase. Документ "InterBase API Guide" (Руководство no API InterBase), доступный в Borland, содержит полное описание API для разработки высокопроизводительных приложений. Более поздние возможности документированы в официальных замечаниях по релизу Firebird и в ограниченном объеме в заголовочных файлах, поставляемых с Firebird [11] .
11
Список ссылок на документальные источники см. в приложении 12.
Разработка приложений
Когда вы создали и заполнили данными базу данных, ее содержимое может быть доступно через клиентское приложение. Некоторые клиентские приложения - такие как инструмент Firebird isql и ряд прекрасных коммерческих и открытых инструментов администратора базы данных - предоставляют возможности интерактивной выборки данных и создания метаданных.
Любое приложение, разработанное в качестве интерфейса пользователя к одной или более базам данных Firebird, будет использовать язык запросов SQL для определения сохраняемых наборов данных и для передачи серверу операторов SQL, запрашивающих операции с данными и метаданными.
Firebird реализует множество операторов SQL, синтаксис которых имеет высокий уровень соответствия с признанным стандартом SQL-92. API Firebird предоставляет полные структуры для компоновки операторов SQL и связанных параметров и для получения приложениями результатов.
Динамические приложения клиент-сервер
Во время выполнения программы приложениям часто бывают нужны операторы SQL, которые создаются или изменяются приложениями или вводятся пользователями. Приложения обычно предоставляют пользователю списки выбора, извлекаемые из таблиц базы данных, которые используют пользователи для указания критериев поиска желаемых ими данных, и операции, которые они хотят выполнить. Программа конструирует запросы на основании выборов пользователя и управляет найденными данными.
Клиентские приложения используют динамический SQL (DSQL) для создания запросов во время выполнения. Клиент Firebird объявляет API как библиотеку функций, которые передают сложные структуры записей, формируют протокол на уровне данных для связи между приложением и сервером.
! ! !
ПРИМЕЧАНИЕ. Программирование с использованием API - большая тема. Ее описание выходит за рамки данной книги. Но поскольку динамический SQL сам не предоставляет некоторых функций, здесь описываются отдельные функции API, чтобы помочь вам понять, как драйверы и интерфейсные компоненты делают их доступными в соответствующих средах проектирования.
. ! .
Ядро API Firebird
Программирование с использованием API необходимо при написании драйверов для создания сценариев в таких языках, как PHP и Python, и при разработке объектно- ориентированных классов доступа к данным для объектно-ориентированных языков типа Java, C++ и Object Pascal. Приложения также могут быть написаны с прямыми вызовами функций API без посредничества драйверов. Эти приложения "прямого API" могут быть мощными, гибкими, быстро-выполняемыми, небольшого размера и с прекрасным управлением распределением памяти.
Функции API (все их имена начинаются с isc) делятся на восемь категорий.
* Соединение с базой данных и отсоединение от базы данных - например,
isc_attach_database.
* Запуск, подготовка, подтверждение и откат транзакций - например,
isc_start_transaction.
* Вызовы выполнения операторов - например, isc_dsql_describe.
* Вызовы BLOB - например, isc_biob_info.
* Вызовы для массивов - например, isc_array_get_slice.