Шрифт:
Добавление комментариев
Код хранимой процедуры должен быть комментирован для помощи в отладке и в разработке приложений. Комментарии особенно важны в хранимых процедурах, потому что процедуры являются глобальными в базе данных и могут использоваться несколькими разработчиками приложений.
В заголовок и тело модуля 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.
Компиляция хранимых процедур и триггеров
Для компиляции любого файла скрипта вы должны включить в файл, по крайней мере, одну "пустую строку" после последнего оператора или комментария. Чтобы сделать это, нажмите, по меньшей мере, один раз клавишу <Return> (Enter) в вашем текстовом редакторе. Когда вы завершите создание вашей процедуры, сохраните ее в файле с любым понравившимся вам именем.
Для компиляции вашей хранимой процедуры просто выполните ваш скрипт с использованием команды INPUT в isql или в интерфейсе обработки скриптов вашего инструмента управления базой данных.
Firebird генерирует ошибки в процессе синтаксического разбора, если присутствует некорректный синтаксис в операторе CREATE PROCEDURE | TRIGGER. Сообщения об ошибках выглядят следующим образом:
Dynamic SQL Error
– SQL error code = -104