Descriptions
There is no desription for trigger BU_DETAIL
 
Definition
CREATE TRIGGER BU_DETAIL FOR DETAIL ACTIVE
BEFORE UPDATE POSITION 32767
AS
DECLARE VARIABLE CURR_DB_ID INTEGER;
DECLARE VARIABLE REPL_COUNT INTEGER;
DECLARE VARIABLE CURR_GEN INTEGER;
BEGIN
/*
Работает аналоги÷но BU_MASTER
(в BU_MASTER более подробная документация)
*/
SELECT DB_ID FROM CURR_DB_ID INTO :CURR_DB_ID;
SELECT GEN FROM CURR_GEN INTO :CURR_GEN;
/**/
SELECT COUNT( DB_ID ) FROM CURR_SERV INTO :REPL_COUNT;
IF( REPL_COUNT=0 AND OLD.DB_ID<>CURR_DB_ID )THEN EXCEPTION E_ACCESS_ERROR;/*Попытка редактирования ÷ужой записи*/
/**/
IF( REPL_COUNT = 0 )THEN NEW.LOG_OWN_GEN = CURR_GEN + 1/*NEXT GENERATION*/; /*NOT IN RECEIVE*/
ELSE
IF( REPL_COUNT <> 1 )THEN EXCEPTION EINTERNAL_MULTIPLE_REPL;/*ASSERT(DEBUG)*/
/**/
UPDATE LOG_DETAIL
SET LOG_UPD_GEN = NULL
WHERE
LOG_GID = NEW.GID
AND LOG_UPD_GEN IS NOT NULL;/*Доп. условие, ÷то бы избежать конфликта блокировок к SET_NEW_GEN*/
END
This file was generated with EMS InterBase/FireBird Manager (www.ibmanager.com) at 11/13/2006 10:51 PM |
![]() ![]() ![]() |