Корпоративные базы данных - статьи




Внешние функции хранимых процедур - часть 3


Она создается с
помощью команды CREATE EXTERNAL FUNCTION. Имя функции, ее физическое положение и
интерфейс (параметры и их типы данных, возвращаемые данные и пр.) передаются в этой команде.
Данная информация хранится в системном каталоге в специальных таблицах. Ниже приведен
пример описания внешней функции.

CREATE EXTERNAL FUNCTION MyFunc
PARAMETERS (Number: INT)
RETURNS (BOOLEAN: WORD)
DESCRIPTION 'Sample External Function Declaration'
LIBRARY MYLIB.DLL
EXPORT ORDINAL 2
EXECUTE IN SAME THREAD
Типы данных для параметров функции и возвращаемого значения состоят из двух частей. Сначала
описывается "внутренний формат", соответствующий стандартным типам данных SAL. Могут
быть использованы все типы данных SAL, которые поддерживаются хранимыми процедурами (см.
выше). "Внешний формат", который следует за внутренним, описывает один из стандартных
форматов C, который служит для передачи данных во внешнюю функцию.

Предложение EXECUTE IN описывает как SQLBase будет загружать динамическую библиотеку и
в каком контексте с точки зрения сервера базы данных будет выполняться внешняя функция. Это, в
свою очередь, определяет тип операций, которые могут осуществляться внутри внешнего
кода.

Можно предложить много различных путей использования механизма внешних функций. Ниже
приведен ряд примерных сценариев.


  • Набор пользовательских функций трансформации и трансляции данных,
    которые могут быть использованы при извлечении строк из результата запроса,
    а также при вставке и изменении строк. Функция такого типа может принимать
    значение одной (или нескольких) колонки и возвращать трансформированные
    данные на основе действующих в организации правил (business rules) для
    отображения в приложении.
  • Следующая категория функций может быть названа "Предупреждения и
    уведомления". Их суть состоит в том, что при наступлении определенного
    состояния базы данных могут запускаться триггеры. Эти триггеры выполняют
    хранимые процедуры. Может оказаться полезным уведомлять некоторых



    Содержание  Назад  Вперед