Реферат: Создание баз данных в InterBase SQL Server

END

ID_DOC = TREE_OWNER;END

END!!

SET TERM ; !!

Эта процедура используется сервером приложений для проверки прав пользователя в таблице в виде иерархического дерева. Понятно, что определить права пользователя к отдельной записи стандартными путями нельзя, поэтому вся БД работает под управлением сервера приложений и посредством DCOM дает интерфейсы клиентам. Т.к. сервер приложений запущен в адресном пространстве сервера, то такой подход к Security можно считать оправданным.

UDF функции

Обычно, тут дают пример, как посчитать какую-нибудь математическую формулу, и вернуть её результат как столбик ответа на запрос. Я же решил показать пример со строками, т.к. это первое, на чем обычно впервые спотыкаются. Это только пример. В реальной БД такого не делают. Итак, добавим в таблицу ACTIVITIES поле TREE_INFO VARCHAR(255). Будем в нем хранить путь от главного узла. Этот путь проще всего строить в триггере по добавлению записи в таблицу. Но сама строка с путем будет создаваться в DLL. Для начала объявим нащу функцию в DLL:

DECLARE EXTERNAL FUNCTION CREATEPATH(CSTRING(256), INTEGER)

RETURNS CSTRING(256)

ENTRY_POINT "CreatePath"

MODULE_NAME "UDF_INCL";

Мы указали имя в БД, передаваемые переметры, возвращаемое значение, имя в DLL, и имя самой DLL. Эта библиотека должна находится в каталоге UDF. Уменяэто D:\Program Files\Borland\InterBase\UDF. А использовать функцию будем так:

SET TERM !! ;

CREATE TRIGGER INSERT_ACTIVITIES FOR ACTIVITIES

BEFORE INSERT

AS

DECLARE VARIABLE PATH_TREE VARCHAR(256);

BEGIN

SELECT TREE_INFO

FROM ACTIVITIESWHERE (NEW.ID_OWNER = ID_NUM)

INTO PATH_TREE;

NEW.TREE_INFO = CREATEPATH(PATH_TREE, NEW.ID_NUM);

END!!

SET TERM ; !!

В InterBase все UDF передают в параметрах ссылки, поэтому строку передают как указатель. Используются VARCHAR строки, т.к. они явно не дополняются пробелами до максимальной длины. Иначе, Вы бы уже ничего к ней не прибавили. Вот реализация DLL в Delphi:

library UDF_INCL;

//

//

// Copyright 2000 Bannikov N.A. Stikriz Technology

//

К-во Просмотров: 458
Бесплатно скачать Реферат: Создание баз данных в InterBase SQL Server