КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Алгоритмический язык хранимых процедур
CREATE PROCEDURE ИмяПроцедуры Создание хранимой процедуры.
Хранимая процедура создается оператором
[(входной_параметр тип_данных [, входной_параметр тип_данных... ])] [RETURNS (выходной_параметр тип_данных [, выходной_параметр тип_данных...])] AS <тело процедуры>;
Входные параметры служат для передачи в процедуру значений из вызывающего приложения. Изменять значения входных параметров в теле процедуры бессмысленно: эти изменения будут забыты после окончания работы процедуры. Выходные параметры служат для возврата результирующих значений. Значения выходных параметров устанавливаются в теле процедуры и после окончания ее работы передаются в вызывающее приложение. И входные, и выходные параметры могут быть опущены, если в них нет необходимости. Тело процедуры имеет формат
[<объявление локальных переменных процедуры>] BEGIN < оператор> [<оператор>...] END
Пример. Хранимая процедура FIND_AUTHOR_NAME возвращает в выходном параметре IN_AUTHOR_NAME имя автора по его коду – IN_AUTHOR_CODE:
CREATE PROCEDURE FindAuthorName (InAuthorCode INTEGER) RETURNS(InAuthorName CHAR(30)) AS BEGIN SELECT Name FROM BookAuthors WHERE Code =: InAuthorCode INTO: InAuthorName; SUSPEND; END
Заметим, что в приведенной процедуре за ненадобностью отсутствует определение локальных переменных. С оператором SELECT мы познакомимся позднее.
Для написания тела хранимой процедуры применяют особый алгоритмический язык. Помимо хранимых процедур, данный язык применяется также для написания триггеров, с которыми мы познакомимся чуть позже. Рассмотрим конструкции алгоритмического языка хранимых процедур и триггеров.
Объявление локальных переменных. Локальные переменные, если они определены в процедуре, имеют срок жизни от начала выполнения процедуры и до ее окончания. Вне процедуры такие локальные переменные неизвестны и попытка обращения к ним вызовет ошибку. Локальные переменные используют для хранения промежуточных значений.
Формат объявления локальных переменных:
DECLARE VARIABLE <имя переменной > <тип данных>;
В качестве типа данных могут использоваться типы данных, стандартно определенные в InterBase.
Оператор присваивания. Оператор присваивания служит для занесения значений в переменные. Его формат:
Имя переменной = выражение;
где в качестве выражения могут выступать переменные, арифметические и строковые выражения, в которых можно использовать встроенные функции, функции, определенные пользователем, а также генераторы. Пример:
РОК = "Покупатель не указан";
Операторные скобки BEGIN... END. Операторные скобки BEGIN... END, во-первых, ограничивают тело процедуры, а во-вторых, могут использоваться для указания границ составного оператора. Под простым оператором понимается единичное разрешенное действие, например:
РОК = "Покупатель не указан"; Под составным оператором понимается группа простых или составных операторов, заключенная в операторные скобки BEGIN... END.
Оператор IF... THEN... ELSE. Условный оператор IF... THEN... ELSE имеет формат
IF (<условие>) THEN <оператор 1> [ELSE <оператор 2>]
В случае, если условие истинно, выполняется оператор 1, если ложно - оператор 2.
Оператор SELECT. Оператор SELECT используется в хранимой процедуре для выдачи единичной сроки. По сравнению с синтаксисом обычного оператора SELECT, в процедурный оператор добавлено предложение INTO переменная [, переменная...]
Оно служит для указания переменных или выходных параметров, в которые должны быть записаны значения, возвращаемые оператором SELECT (те результирующие значения, которые перечисляются после ключевого слова SELECT).
Оператор FOR SELECT... DO. Оператор FOR SELECT... DO имеет следующий формат:
Дата добавления: 2014-01-05; Просмотров: 507; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |