*------------------------------------------- * add theses line in a VOC PAragraph * TRIG.LOG.b is the basic source * *TRIG.LOC is the catalogname (global level) * TRIGLOG is the trigger name on the file's header * ----------------------------------------------- * PA * BASIC BP TRIG.LOG * CATALOGI BP *TRIG.LOG TRIG.LOG.b FORCE * DROP TRIGGER <> TRIGLOG * CREATE TRIGGER TRIGLOG AFTER INSERT OR UPDATE OR DELETE ON <> FOR EACH ROW CALLING '*TRIG.LOG'; *--------------------------------------------------- SUBROUTINE B.TRIG.TRAP(trigger.name, schema, table, event, time, new.recordID, new.record, old.recordID, old.record, association, association.event, count, chain.cascade, cascade) $OPTIONS PICK LOGFILE = CONVERT('/','_',table):'-':OCONV(DATE(),'DYMD-'):'.log' OPENSEQ '/tmp/':LOGFILE TO FVSEQ THEN SEEK FVSEQ,0,2 THEN NULL END ELSE WRITESEQ 'START ':TIMEDATE() ON FVSEQ ELSE NULL END TRACE = TIMEDATE():' ':@LOGNAME:' ':@WHO:' ':new.recordID:' ':event:' ':time WRITESEQ TRACE ON FVSEQ ELSE NULL TRACE = SYSTEM(9001) ;* CALL STACK PROG/SUBR WRITESEQ TRACE ON FVSEQ ELSE NULL IF event = 'UPDATE' THEN NBAMC = DCOUNT(new.record,@AM) BUF = DCOUNT(old.record,@AM) IF BUF > NBAMC THEN NBAMC = BUF FOR I = 1 TO NBAMC IF new.record # old.record THEN TRACE = OCONV(I,'MR%5'):' (':old.record:') > (':new.record:')' WRITESEQ TRACE ON FVSEQ ELSE NULL END NEXT I END CLOSESEQ FVSEQ RETURN *------------------------------ END