Хранимые процедуры (Procedures)
Хранимая процедура – это откомпилированная во внутреннее представление сервера СУБД подпрограмма, хранящаяся в базе данных. Хранимые процедуры пишутся на специальном языке хранимых процедур и триггеров, в котором имеются операторы присваивания, ветвлений и циклов, и в которых можно использовать операторы SQL, такие как INSERT, DELETE, UPDATE и SELECT. Хранимые процедуры позволяют переносить часть прикладных функций, связанных с обработкой данных, в саму данных. Например, хранимая процедура может управлять приемом заказа или переводом денег с одного банковского счета на другой. Для автоматического выполнения хранимых процедур при возникновении в базе данных определенных условий используются триггеры. Хранимые процедуры создаются оператором CREATE PROCEDURE, в котором указываются следующие элементы: 1. имя хранимой процедуры; 2. входные и выходные параметры и их типы; 3. имена и типы данных локальных переменных, используемых процедурой; 4. последовательность инструкций, которые выполняются при вызове процедуры. С помощью входных параметров внутрь хранимой процедуры можно передать значения, которые будут использоваться в ходе выполнения процедуры. С помощью выходных параметров хранимые процедуры возвращают значения, вычисленные в ходе выполнения процедуры. Многие СУБД поддерживают хранимые функции, которые отличаются от хранимых процедур тем, что возвращают значение. InterBase не поддерживает хранимых функций. В InterBase для возврата значений из хранимых процедур применяются выходные параметры. Некоторые СУБД поддерживают параметры, которые одновременно являются и входными, и выходными. InterBase не поддерживает такой возможности. Для параметров и локальных переменных хранимых процедур используются те же типы данных, которые поддерживаются СУБД для столбцов таблиц. Синтаксис оператора создания хранимой процедуры в InterBase: CREATE PROCEDURE Имя_Процедуры [(Параметр <тип данных> [, Параметр <тип данных> ...])] [RETURNS (Параметр <тип данных> [, Параметр <тип данных> ...])] AS [<список переменных>] <блок>; <список переменных> = DECLARE [VARIABLE] Переменная <тип данных>; [DECLARE [VARIABLE] Переменная <тип данных>; ...] <блок> = BEGIN <составной оператор> [<составной оператор>...] END <составной оператор> = <блок> | Оператор; <тип данных> = один из типов данных InterBase Оператор – любой одиночный оператор языка хранимых процедур и триггеров InterBase. Внутри хранимых процедур может быть предусмотрена обработка исключений. Хранимые процедуры могут быть вложенными и рекурсивными, т.е. вызывающими сами себя. Основные преимущества хранимых процедур: 1. Производительность – перенос на сервер часто используемых действий приводит к существенному повышению производительности. 2. Многократное использование кода – части приложения, перенесенные на сервер, могут использоваться любыми другими приложениями, имеющими доступ к серверу.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|