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

СОВЕТ. Довольно общей является практика включения (INPUT) В цепочку скриптов DDL одного или более скриптов, содержащих операторы INSERT для ввода в некоторые таблицы статичных управляющих данных. Вы можете, например, включить операторы для добавления начальных строк в таблицу учетных записей. Убедитесь, что все операторы DDL подтверждаются до появления других операторов DML.

. ! .

Операторы процедурного языка (PSQL), определенные для хранимых процедур и триггеров, также могут быть включены в скрипты. Блоки PSQL получают специальную трактовку в скриптах в зависимости от символов терминатора операторов (см. далее разд. "Символы терминатора").

Комментарии

Скрипт может также содержать комментарии в двух вариантах.

Блок комментариев

Блок комментариев в скриптах DDL использует соглашения языка С:

/* Этот комментарий распространяется на множество строк в скрипте */

Блок комментариев может появиться в той же строке, что и оператор SQL или команда isql, и может быть произвольной длины. Он начинается символами /* и заканчивается символами */.

Линейные комментарии

Комментарий стиля /*...*/ также может быть встроен внутрь оператора как линейный комментарий:

CREATE TABLE USERS1 (

USER_NAME VARCHAR( 128 )

/* security user name */

, GROUP_NAME VARCHAR(128)

/* not used on Windows */

, PASSWD VARCHAR( 32 )

/* will be stored encrypted */

, FIRST_NAME VARCHAR(96) /* Defaulted */

, MIDDLE_NAME VARCHAR( 96 ) /* Defaulted */

, LAST_NAME VARCHAR( 96 ) /* Defaulted */

, EULL_NAME VARCHAR( 290 ) /* Computed */

) ;

Однострочные комментарии

В скриптах Firebird вы можете использовать альтернативное соглашение по комментированию одной строки - двойной минус:

-- комментарий

В релизе 1.0.x этот стиль комментария не может быть использован для линейного комментария или для "закомментирования" части строки.

В релизе 1.5 и выше соглашение по комментированию -- может быть использовано в любом месте строки для "комментирования" всего, начиная с маркера до конца текущей строки, например:

CREATE TABLE MET_REPORT (

ID BIGINT NOT NULL, -- VARCHAR(40), невидим

WEATHER_CONDITIONS

BLOB SUB_TYPE TEXT,

LAST_REPORT TIMESTAMP) ;

Операторы isql

Команды isql SET AUTODDL, SET SQL DIALECT, SET TERM и INPUT являются допустимыми операторами в скриптах Firebird - подробности об этих командах см. в главе 37.

Символы терминатора

Все операторы, которые выполняются в скрипте, должны оканчиваться символом терминатора. Символ по умолчанию - точка с запятой (;).

Символ терминатора по умолчанию может быть изменен для всех операторов за исключением операторов языка процедур (PSQL) при использовании в скрипте команды SET TERM[33].

Терминаторы и язык процедур (PSQL)

PSQL не допускает никаких терминаторов за исключением точки с запятой (;). Такое ограничение необходимо, потому что CREATE PROCEDURE, RECREATE PROCEDURE, ALTER PROCEDURE, CREATE TRIGGER и ALTER TRIGGER вместе с их операторами PSQL являются сложными операторами с их собственными правилами. Компилятору нужно видеть точку с запятой для различения каждого оператора PSQL.

Следовательно, в скриптах необходимо переопределять используемый в командах скрипта терминатор перед началом операторов PSQL для хранимых процедур и триггеров. После последнего оператора END, когда завершается исходный текст процедуры, следует восстановить значение терминатора по умолчанию, используя другой оператор SET TERM. Пример:

CREATE GENERATOR GEN_MY_GEN ;

SET TERM ^^;

CREATE TRIGGER BI_TABLEA_0 FOR TABLEA

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

IF (NEW.PK IS NOT NULL) THEN

NEW.PK = GEN_ID(GEN_MY_GEH, 1);

END ^^

SET TERM ; ^^

. . .

Любая строка может быть использована в качестве альтернативного терминатора, например:

SET TERM @ ! #;

CREATE PROCEDURE...

AS

BEGIN

. . . ;

. . . ;

END @!#

SET TERM ;@!#

/**/

COMMIT;

/**/

SET TERM +;

CREATE PROCEDURE...

AS

BEGIN

. . .;

. . . ;

END +

SET TERM ; +

/**/

COMMIT;

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

Например, в следующей последовательности оператор COMMIT не будет выполняться:

ALTER TABLE ATABLE ADD F2 INTEGER; COMMIT;

в то время как последовательность далее правильная:

ALTER TABLE ATABLE ADD F2 INTEGER; /* счетчик бобов */

COMMIT;

<p>Основные шаги</p>

Основные шаги по использованию файлов скриптов описаны в следующих разделах.

Шаг 1: создание файла скрипта

Используйте любой подходящий текстовый редактор. На стадии обучения вы можете за каждым оператором DDL записывать оператор COMMIT, чтобы обеспечить видимость объекта последующим операторам. Когда вы получите больше опыта, вы научитесь подтверждать операторы в блоках, применяя SET AUTODDL ON и SET AUTODDL OFF с целью управления взаимозависимостями и при тестировании/отладке скриптов.

! ! !

ВНИМАНИЕ! Убедитесь, что каждый скрипт заканчивается символом перевода строки и, по меньшей мере, одной пустой строкой.

. ! .

Шаг 2: выполнение скрипта

Используйте команду INPUT в сессии isql, или кнопку Выполнить (Execute), или аналогичную в вашем инструменте управления базой данных.

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

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

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

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