Инструменты пользователя

Инструменты сайта


Боковая панель

Введение

Статьи и часто задаваемые вопросы

Установка и настройка

Обработка ошибок

Полезные запросы SQL

Тематические группы

execute_block



EXECUTE BLOCK

Версии сервера

Firebird 2.0

Доступно в

Формат

EXECUTE BLOCK [ (inparam datatype = :<название параметра>, ...) ]
      [ RETURNS (outparam datatype, ...) }
AS
[DECLARE VARIABLE varparam datatype; ...]
BEGIN
...
END

inparam - входящие параметры

outparam - исходящие параметры

varparam - переменые доступные внутри блока

datatype - тип данных

Описание

функция позволяет выполнять набор PSQL команд без создания процедуры.

Поддерживает как входные так и выходные параметры.

Пример

EXECUTE block RETURNS (RESULT VARCHAR(30))
AS
DECLARE variable vtest INTEGER;
BEGIN
  UPDATE rdb$functions fr
     SET fr.rdb$function_name = fr.rdb$function_name
   WHERE 1 = 1;
  RESULT = 'Обновили '||ROW_COUNT||' записей';
  suspend;
 
  UPDATE rdb$functions fr
     SET fr.rdb$function_name = fr.rdb$function_name
   WHERE fr.rdb$function_name = 'test';
  RESULT = 'Обновили '||ROW_COUNT||' записей';
  suspend;
 
  FOR SELECT fr.rdb$function_type
        FROM rdb$functions fr
       WHERE fr.rdb$function_name LIKE 'RDB$%'
        INTO :vtest do
  BEGIN
  END
 
  RESULT = 'Получили '||ROW_COUNT||' записей';
  suspend;
END

Или

EXECUTE block (pass1 VARCHAR(255) = :pass1)
AS
BEGIN
  IF (EXISTS (SELECT id FROM toptions2 WHERE name = 'dbpass')) THEN
    UPDATE TOPTIONS2 SET val = :pass1 WHERE name = 'dbpass';
  ELSE
    INSERT INTO TOPTIONS2 (name,  val) VALUES ('dbpass', :pass1);
END

Источник

\doc\sql.extensions\README.execute_block.txt

Только авторизованные участники могут оставлять комментарии.
execute_block.txt · Последние изменения: 2012/02/03 12:00 (внешнее изменение)