75 lines
3.4 KiB
Plaintext
75 lines
3.4 KiB
Plaintext
CREATE OR REPLACE TRIGGER "EFT_NOM".cg$BUR_SESSIONS
|
|
|
|
BEFORE UPDATE ON SESSIONS FOR EACH ROW
|
|
|
|
|
|
DECLARE
|
|
cg$rec cg$SESSIONS.cg$row_type;
|
|
cg$ind cg$SESSIONS.cg$ind_type;
|
|
cg$old_rec cg$SESSIONS.cg$row_type;
|
|
BEGIN
|
|
-- Application_logic Pre-Before-Update-row <<Start>>
|
|
-- Application_logic Pre-Before-Update-row << End >>
|
|
|
|
-- Load cg$rec/cg$ind values from new
|
|
|
|
cg$rec.CLIENT_ID := :new.CLIENT_ID;
|
|
cg$ind.CLIENT_ID := (:new.CLIENT_ID IS NULL AND :old.CLIENT_ID IS NOT NULL )
|
|
OR (:new.CLIENT_ID IS NOT NULL AND :old.CLIENT_ID IS NULL)
|
|
OR NOT(:new.CLIENT_ID = :old.CLIENT_ID) ;
|
|
cg$SESSIONS.cg$table(cg$SESSIONS.idx).CLIENT_ID := :old.CLIENT_ID;
|
|
cg$rec.USER_NAME := :new.USER_NAME;
|
|
cg$ind.USER_NAME := (:new.USER_NAME IS NULL AND :old.USER_NAME IS NOT NULL )
|
|
OR (:new.USER_NAME IS NOT NULL AND :old.USER_NAME IS NULL)
|
|
OR NOT(:new.USER_NAME = :old.USER_NAME) ;
|
|
cg$SESSIONS.cg$table(cg$SESSIONS.idx).USER_NAME := :old.USER_NAME;
|
|
cg$rec.SYUS_ID := :new.SYUS_ID;
|
|
cg$ind.SYUS_ID := (:new.SYUS_ID IS NULL AND :old.SYUS_ID IS NOT NULL )
|
|
OR (:new.SYUS_ID IS NOT NULL AND :old.SYUS_ID IS NULL)
|
|
OR NOT(:new.SYUS_ID = :old.SYUS_ID) ;
|
|
cg$SESSIONS.cg$table(cg$SESSIONS.idx).SYUS_ID := :old.SYUS_ID;
|
|
cg$rec.CUST_ID := :new.CUST_ID;
|
|
cg$ind.CUST_ID := (:new.CUST_ID IS NULL AND :old.CUST_ID IS NOT NULL )
|
|
OR (:new.CUST_ID IS NOT NULL AND :old.CUST_ID IS NULL)
|
|
OR NOT(:new.CUST_ID = :old.CUST_ID) ;
|
|
cg$SESSIONS.cg$table(cg$SESSIONS.idx).CUST_ID := :old.CUST_ID;
|
|
cg$rec.INTE_ID := :new.INTE_ID;
|
|
cg$ind.INTE_ID := (:new.INTE_ID IS NULL AND :old.INTE_ID IS NOT NULL )
|
|
OR (:new.INTE_ID IS NOT NULL AND :old.INTE_ID IS NULL)
|
|
OR NOT(:new.INTE_ID = :old.INTE_ID) ;
|
|
cg$SESSIONS.cg$table(cg$SESSIONS.idx).INTE_ID := :old.INTE_ID;
|
|
cg$rec.IP_ADDRESS := :new.IP_ADDRESS;
|
|
cg$ind.IP_ADDRESS := (:new.IP_ADDRESS IS NULL AND :old.IP_ADDRESS IS NOT NULL )
|
|
OR (:new.IP_ADDRESS IS NOT NULL AND :old.IP_ADDRESS IS NULL)
|
|
OR NOT(:new.IP_ADDRESS = :old.IP_ADDRESS) ;
|
|
cg$SESSIONS.cg$table(cg$SESSIONS.idx).IP_ADDRESS := :old.IP_ADDRESS;
|
|
cg$rec.EXPIRES := :new.EXPIRES;
|
|
cg$ind.EXPIRES := (:new.EXPIRES IS NULL AND :old.EXPIRES IS NOT NULL )
|
|
OR (:new.EXPIRES IS NOT NULL AND :old.EXPIRES IS NULL)
|
|
OR NOT(:new.EXPIRES = :old.EXPIRES) ;
|
|
cg$SESSIONS.cg$table(cg$SESSIONS.idx).EXPIRES := :old.EXPIRES;
|
|
|
|
|
|
cg$SESSIONS.idx := cg$SESSIONS.idx + 1;
|
|
|
|
if not (cg$SESSIONS.called_from_package) then
|
|
cg$SESSIONS.validate_arc(cg$rec);
|
|
cg$SESSIONS.validate_domain(cg$rec, cg$ind);
|
|
cg$SESSIONS.validate_domain_cascade_update(cg$old_rec);
|
|
|
|
cg$SESSIONS.upd(cg$rec, cg$ind, FALSE);
|
|
cg$SESSIONS.called_from_package := FALSE;
|
|
end if;
|
|
|
|
:new.USER_NAME := cg$rec.USER_NAME;
|
|
:new.SYUS_ID := cg$rec.SYUS_ID;
|
|
:new.CUST_ID := cg$rec.CUST_ID;
|
|
:new.INTE_ID := cg$rec.INTE_ID;
|
|
:new.IP_ADDRESS := cg$rec.IP_ADDRESS;
|
|
:new.EXPIRES := cg$rec.EXPIRES;
|
|
-- Application_logic Post-Before-Update-row <<Start>>
|
|
-- Application_logic Post-Before-Update-row << End >>
|
|
END;
|
|
/
|
|
|