Читаем Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ полностью

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

Инструменты редактирования

Может быть использован любой текстовый редактор 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.

<p>Компиляция хранимых процедур и триггеров</p>

Для компиляции любого файла скрипта вы должны включить в файл, по крайней мере, одну "пустую строку" после последнего оператора или комментария. Чтобы сделать это, нажмите, по меньшей мере, один раз клавишу (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 в то время, когда не выполняется ни одно клиентское приложение.

Изменение и удаление модулей

Когда вы изменяете процедуру или триггер, новое определение процедуры заменяет старую версию. Для изменения определения процедуры или триггера выполните следующие шаги:

1. Скопируйте файл исходного определения данных, содержащий оператор создания процедуры. В другом варианте - используйте isql -extract для выделения исходного текста процедуры или триггера из базы данных в текстовый файл.

2. Отредактируйте файл, заменив CREATE на RECREATE или ALTER и изменив определение желаемым образом.

3. Выполните измененный скрипт при "чистых" условиях, как было описано ранее. Для удаления модуля выполните:

DROP {PROCEDURE | TRIGGER} имя-модуля;

Привилегии

Только пользователь SYSDBA или владелец процедуры/триггера может изменять или удалять его.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных