shortcut required..

govindankvs

New Member
Hi ,

Nedd some short method for the below mentioned problem.

I need to trace user activity for 20 tables(CREATE, READ, WRITE & DELETE). For this I can do the following :
== >> Create DB trigger program for all 20 tables. For this I need to
create 20 * 4 = 80 .p programs

Is there any shorter way to accomplish this .

Thanks in advance
Govind
 
i create db triggers programatically .
using the following code.

/* TriggersGen.p */
DEF VAR lv-Directory AS CHARACTER NO-UNDO.
def var lv-uniquekey as char no-undo.
/* location for triggers */
lv-directory = 'triggers/'.
FOR EACH _File WHERE _FIle-num > 0
and _file-num < 32000
NO-LOCK:
for each _file-trig of _file exclusive-lock:
delete _file-trig.
end.
run create-trig('create').
run create-trig('delete').
run create-trig('write').
RUN GenCreate.
RUN GenDelete.
RUN GenWrite.
RUN GenRead.
END.

procedure create-trig:
def input param pv-mode as char no-undo.
create _file-trig.
assign
_file-trig._file-recid = recid(_file)
_file-trig._event = pv-mode
_file-trig._override = yes
_file-trig._proc-name = lv-directory + lc(_file._file-name) + substring(pv-mode,1,2) + '.p'.
_file-trig._trig-crc = ? no-error.
end procedure.
PROCEDURE GenCreate:
OUTPUT TO VALUE(lv-Directory + _File._File-name + "cr.p") NO-ECHO.
PUT UNFORMATTED "TRIGGER PROCEDURE FOR CREATE OF " _File._File-name "." SKIP(1).
PUT UNFORMATTED "put code in here" SKIP.
PUT UNFORMATTED "etc" SKIP.
PUT UNFORMATTED "etc" SKIP
OUTPUT CLOSE.
END PROCEDURE.
PROCEDURE GenDelete:
OUTPUT TO VALUE(lv-Directory + _File._File-name + "de.p") NO-ECHO.
PUT UNFORMATTED "TRIGGER PROCEDURE FOR DELETE OF " _File._File-name "." SKIP(1).
PUT UNFORMATTED "put code in here" SKIP.
PUT UNFORMATTED "etc" SKIP.
PUT UNFORMATTED "etc" SKIP
OUTPUT CLOSE.
END PROCEDURE.
PROCEDURE GenWrite:
OUTPUT TO VALUE(lv-Directory + _File._File-name + "wr.p") NO-ECHO.
PUT UNFORMATTED "TRIGGER PROCEDURE FOR WRITE OF " _File._File-name " OLD OldBuffer." SKIP(1).
PUT UNFORMATTED "put code in here" SKIP.
PUT UNFORMATTED "etc" SKIP.
PUT UNFORMATTED "etc" SKIP
OUTPUT CLOSE.
END PROCEDURE.
PROCEDURE GenRead:
OUTPUT TO VALUE(lv-Directory + _File._File-name + "fi.p") NO-ECHO.
PUT UNFORMATTED "TRIGGER PROCEDURE FOR FIND OF " _File._File-name "." SKIP(1).
PUT UNFORMATTED "put code in here" SKIP.
PUT UNFORMATTED "etc" SKIP.
PUT UNFORMATTED "etc" SKIP
OUTPUT CLOSE.
END PROCEDURE.


hope this helps
 
Back
Top