Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с БД в архитектуре 'клиент-сервер'_RTF.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
454.08 Кб
Скачать

Обращение к хранимой процедуре (утилита wisql)

EXECUTE PROCEDURE имя [параметр [, параметр ...]];

Тело процедуры

[<объявление локальных переменных процедуры>]

BEGIN

<оператор>

[<оператор> ...]

END

Изменение хранимой процедуры

ALTER PROCEDURE ИмяПроцедуры

[ (входной_параметр тип данных [, входной_параметр тип данных...])] [RETURNS

(выходной_параметр тип_данных [, выходной_параметр тип_данных ...])] AS <тело процедуры>;

Удаление хранимой процедуры

DROP PROCEDURE ИмяПроцедуры;

Алгоритмический язык триггеров и хранимых процедур

Объявление локальных переменных

DECLARE VARIABLE <имя переменной > <тип данных>;

Оператор присваивания

Имя переменной = выражение;

Условный оператор

IF (<условие>) THEN

<оператор 1>

[ELSE <оператор 2>]

Оператор выбора select

Стандартный оператор SELECT InterBase, расширенный за счет предложения INTO:

SELECT [DISTINCT I ALL] {* ! <значение1> [, <значение2>…]}

FROM <тaблицal> [, < таблица2> ...]

[WHERE <условия поиска>]

[GROUP BY столбец [COLLATE collation]

[,столбец1 [COLLATE collation]…]

[HAVING < условия_поиска >]

[UNION <onepaтop_select>]

[PLAN <план выполнения запроса>]

[ORDER BY <список столбцов>]

INTO : переменная [, переменная...]

Оператор циклической выборки

FOR<оператор SELECT> DO <составной оператор>;

Принудительная выдача выходных параметров (только хранимые процедуры)

SUSPEND;

Оператор цикла

WHILE (<условие>) DO <оператор>

Выход из процедуры, триггера

EXIT;

Вложенный вызов другой хранимой процедуры

EXECUTE PROCEDURE имя[параметр[,параметр…]];[RETURNING_VALUES параметр [, параметр…]];

Инициация наступления события

POST EVENT "Имя события";

Обращение к старому и новому значениям столбца(только триггеры)

OLD.ИмяСтолбца

NEW.ИмяСтолбца

Триггеры

Создание триггера

CREATE TRIGGER ИмяТриггера FOR ИмяТаблицы

[ACTIVE ! INACTIVE]

{BEFORE ! AFTER}

{DELETE ! INSERT ! UPDATE}

[POSITION номер] AS <тело триггера>

Структура тела триггера

[<объявление локальных переменных процедуры>]

BEGIN

<оператор> [<оператор> ... ]

END

Изменение существующего триггера

ALTER TRIGGER ИмяТриггера FOR ИмяТаблицы

[ACTIVE ! INACTIVE]

{BEFORE ! AFTER}

{DELETE ! INSERT ! UPDATE}

[POSITION номер] AS <тело триггера>

Удаление триггера

DROP TRIGGER ИмяТриггера;

Генераторы

Создание генератора

CREATE GENERATOR ИмяГенератора;

Установка стартового значения генератора

SET GENERATOR ИмяГенератора ТО СтартовоеЗначение;

Транзакции

Старт транзакции

SET TRANSACTION [READ WRITE ! READ ONLY]

[WAIT ! NO WAIT]

[[ISOLATION LEVEL] {SNAPSHOT [TABLE STABILITY]

READ COMMITTED [[NO] RECORD_VERSION]}]

[RESERVING <список таблиц> [FOR [SHARED ! PROTECTED] [READ ! WRITE]],[<список таблиц>…];

События

Инициация наступления события

POST_EVENT "Имя события";

UDF (Функции, определяемые пользователем)

Объявление UDF (функций, определяемых пользователем) в базе данных

DECLARE EXTERNAL FUNCTION ИмяФункции

[<Тип данных> ! CSTRING (число) [, <Тип данных> ! CSTRING (число) ...]] RETURNS {< Тип данных > [BY VALUE] ! CSTRING (число)} ENTRY_POINT "<Имя функции в DLL>"

MODULE_NAME "< Имя DLL >";

Привилегии доступа

Предоставление привилегий доступа к таблицам БД, просмотрам, вызовам процедур

GRANT {

{ALL [PRIVILEGES] ! SELECT ! DELETE ! INSERT ! UPDATE

[(столбец [, столбец ...])]}

ON [TABLE] {ИмяТаблицы ! ИмяПросмотра}

TO {<объект> ! <список_пользователей>}

! EXECUTE ON PROCEDURE procname

TO {<объект > ! < список_пользователей>}

};

<объект > = PROCEDURE ИмяПроцедуры ! TRIGGER ИмяТриггера

! VIEW ИмяПросмотра ! [USER] ИмяПользователя ! PUBLIC [,<объект>]

< список_пользователей > = [USER] ИмяПользователя [, [USER] ИмяПользователя...] [WITH GRANT OPTION]