Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Название:Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2006
- Город:Санкт-Петербург
- ISBN:5-94157-609-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ краткое содержание
Рассмотрены вопросы, необходимые разработчику для создания клиент-серверных приложений с использованием СУБД Firebird, явившейся развитием СУБД Borland Interbase 6. Содержится обзор концепций и моделей архитектуры клиент/сервер, а также практические рекомендации по работе с клиентскими библиотеками Firebird. Детально описаны особенности типов данных SQL, язык манипулирования данными (Data Manipulation Language, DML), а также синтаксис и операторы языка определения данных ( Data Definition Language, DDL). Большое внимание уделено описанию транзакций и приведены советы по их использованию при разработке приложений. Описано программирование на стороне клиента и сервера написание триггеров и хранимых процедур, создание и использование событий базы данных, обработка ошибок в коде на сервере и многое другое. Материал сопровождается многочисленными примерами, советами и практическими рекомендациями.
Для разработчиков баз данных
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Добавление комментариев
Код хранимой процедуры должен быть комментирован для помощи в отладке и в разработке приложений. Комментарии особенно важны в хранимых процедурах, потому что процедуры являются глобальными в базе данных и могут использоваться несколькими разработчиками приложений.
В заголовок и тело модуля PSQL могут быть включены и многострочные, и встроенные комментарии. Синтаксис комментариев подробно обсуждался в главе 14 в разд. "Скрипты схемы".
Чувствительность к регистру и пробелы
Если при создании вами объектов базы данных были использованы квотированные идентификаторы, то все правила чувствительности к регистру, которые применялись к вашим данным динамического SQL, должны также применяться, когда вы ссылаетесь на эти объекты в операторах процедуры.
Весь остальной код не является чувствительным к регистру. Например (предполагая, что не использовались идентификаторы объектов с разделителями), следующие два фрагмента операторов являются эквивалентными:
CREATE PROCEDURE MYPROC...
create procedure myproc...
Компилятор не устанавливает ограничений на количество пробелов или символов перевода строки. Для читаемости вашего кода может быть полезным применение какой-либо формы стандартных соглашений о расположении вашего процедурного кода. Например, вы можете писать все ключевые слова в верхнем регистре, выделять код блоков, размещать объявления переменных на отдельных строках, помещать за- пятые-разделители в начале строки и т.д.
Управление вашим кодом
Учитывая, что языком высокого уровня для программирования на стороне сервера в Firebird является язык SQL и что исходный код представляется серверу в форме "супероператоров" DDL для компиляции в объекты базы данных, не удивительно, что вся поддержка кодов также выполняется с использованием операторов DDL. Эти операторы совместимы с соглашениями по поддержке других объектов в базе данных SQL.
* Переопределению скомпилированных объектов (хранимых процедур и триггеров) служит синтаксис ALTER PROCEDURE | TRIGGER. Для хранимых процедур Firebird также предоставляет синтаксис RECREATE PROCEDURE и (начиная с версии 1.5) CREATE или REPLACE PROCEDURE.
* Операторы DROP PROCEDURE | TRIGGER используются для удаления модулей.
Существует два способа управления процедурами и триггерами: интерактивно вводить операторы с использованием isql или другого инструмента, который может передавать DSQL, или с использованием одного или более выходных файлов, содержащих операторы определения данных, называемых скриптами.
Интерактивный интерфейс кажется более быстрым и простым способом делать эти вещи - но только до первого раза, когда вам понадобится что-нибудь изменить, проверить и пересоздать. Использование скриптов рекомендуется, потому что скрипты не только предоставляют необходимую документацию кодов, но также могут содержать комментарии и могут легко модифицироваться.
Может быть использован любой текстовый редактор ASCII, который не сохраняет непечатаемые символы за исключением символа перевода строки (ASCII 13), возврата каретки (ASCII 10) и символа табуляции (ASCII 9). Некоторые редакторы имеют средства подсветки ключевых слов SQL: редакторы IDE для Borland Delphi и Kylix, а также некоторые другие инструменты, представленные в приложении 5.
! ! !
СОВЕТ. Утилита командной строки isql может быть использована в качестве редактора при употреблении команды EDIT. Эта команда будет использовать выбранный вами текстовый редактор, если вы установите в вашей системе соответствующие переменные окружения. В POSIX установите переменную окружения VISUAL или EDITOR. В Windows установите EDITOR.
. ! .
Полезной практикой является добавление расширения sql к именам файлов скриптов Firebird. Помимо пользы от идентификации скриптов в вашей файловой системе, расширение sql будет распознаваться как пакетный файл SQL многими инструментами редактирования, которые поддерживают подсветку синтаксиса SQL.
Компиляция хранимых процедур и триггеров
Для компиляции любого файла скрипта вы должны включить в файл, по крайней мере, одну "пустую строку" после последнего оператора или комментария. Чтобы сделать это, нажмите, по меньшей мере, один раз клавишу (Enter) в вашем текстовом редакторе. Когда вы завершите создание вашей процедуры, сохраните ее в файле с любым понравившимся вам именем.
Для компиляции вашей хранимой процедуры просто выполните ваш скрипт с использованием команды INPUT в isql или в интерфейсе обработки скриптов вашего инструмента управления базой данных.
Firebird генерирует ошибки в процессе синтаксического разбора, если присутствует некорректный синтаксис в операторе CREATE PROCEDURE | TRIGGER. Сообщения об ошибках выглядят следующим образом:
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 4, char 9
-tmp
Нумерация строк начинается со строки, содержащей оператор CREATE, а не С начала файла скрипта. Символы подсчитываются слева направо, а неопределенный элемент указывается либо в виде номера первого символа источника ошибки, либо в виде номера крайнего правого символа источника ошибки. Если есть сомнения, проверяйте всю строку для определения источника синтаксической ошибки.
! ! !
СОВЕТ. Если вы используете версию isql, более позднюю, чем Firebird 1.0, вы заметите улучшение ее возможностей в описании ошибок в скриптах и указании их расположения. Хотя Firebird не содержит средств отладки хранимых процедур, некоторые инструменты сторонних разработчиков имеют такие возможности.
. ! .
Сервер Firebird педантичен при поддержке информации о взаимозависимостях между управляемыми им объектами. Необходимы специальные соглашения при выполнении изменений хранимых процедур, находящихся в текущий момент в использовании другими пользователями. Процедура находится "в использовании" (procedure is in use), когда она в настоящий момент выполняется, или если она была внутренне скомпилирована в кэш метаданных по запросу пользователя. Более того, сервер будет откладывать или запрещать компиляцию операторов ALTER или DROP, если скомпилированная версия будет найдена в кэше метаданных.
Изменения процедур не будут видны клиентским приложениям, пока они не отсоединятся от базы данных и вновь не присоединятся к ней.
! ! !
ПРИМЕЧАНИЕ. Триггеры и хранимые процедуры, вызывающие процедуры, которые были изменены или заново созданы, не имеют доступа к новой версии, пока база данных не окажется в состоянии, когда все клиенты будут отключены.
. ! .
Идеальный вариант - выдача операторов CREATE, RECREATE и ALTER для модулей PSQL в то время, когда не выполняется ни одно клиентское приложение.
Читать дальшеИнтервал:
Закладка: