Kbase P132334: 4GL/ABL: How to programmatically dump and load table and field triggers to a flat file?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  6/13/2008 |
|
Status: Unverified
GOAL:
4GL/ABL: How to programmatically dump and load table and field triggers to a flat file?
GOAL:
How to delete the 4GL table and field triggers after dumping them to a text file?
GOAL:
How to backup field and table 4GL triggers to a text file?
GOAL:
How to load database 4GL table and field triggers from flat text files?
FACT(s) (Environment):
All Supported Operating Systems
Progress 8.x
Progress 9.x
OpenEdge 10.x
FIX:
1. The following procedure dumps and DELETEs all the 4GL table triggers into the Table-Trig.dat text file in the working directory If deleting these triggers is not required, then comment the DELETE _File-Trig. statement:
DEFINE STREAM s_Table-Trig.
OUTPUT STREAM s_Table-Trig TO Table-Trig.dat.
FOR EACH _File NO-LOCK WHERE _File-Num > 0 AND _File-Num < 32768,
EACH _File-Trig OF _File:
EXPORT STREAM s_Table-Trig
_File-Trig._File-Recid
_File-Trig._Event
_File-Trig._Proc-Name
_File-Trig._Override
_File-Trig._Trig-Crc.
DELETE _File-Trig.
END.
2. The following procedure loads all the 4GL table triggers from the Table-Trig.dat text file in the working directory back into the database:
DEFINE STREAM s_Table-Trig.
INPUT STREAM s_Table-Trig FROM Table-Trig.dat.
DEFINE TEMP-TABLE My_File-Trig NO-UNDO
FIELD My_File-Recid LIKE _File-Trig._File-Recid
FIELD My_Event LIKE _File-Trig._Event
FIELD My_Proc-name LIKE _File-Trig._Proc-Name
FIELD My_Override LIKE _File-Trig._Override
FIELD My_Trig-Crc LIKE _File-Trig._Trig-Crc.
REPEAT:
CREATE My_File-Trig.
IMPORT STREAM s_Table-Trig
My_File-Trig.My_File-Recid
My_File-Trig.My_Event
My_File-Trig.My_Proc-Name
My_File-Trig.My_Override
My_File-Trig.My_Trig-Crc.
END.
FOR EACH My_File-Trig WHERE My_File-Trig.My_File-Recid <> ?:
CREATE _File-Trig.
ASSIGN
_File-Trig._File-Recid = My_File-Trig.My_File-Recid
_File-Trig._Event = My_File-Trig.My_Event
_File-Trig._Proc-name = My_File-Trig.My_Proc-Name
_File-Trig._Override = My_File-Trig.My_Override
_File-Trig._Trig-Crc = My_File-Trig.My_Trig-Crc.
END.
3. The following procedure dumps and DELETEs all the 4GL field triggers into the Field-Trig.dat text file in the working directory If deleting these triggers is not required, then comment the DELETE _Field-Trig. statement:
DEFINE STREAM s_Field-Trig.
OUTPUT STREAM s_Field-Trig TO Field-Trig.dat.
FOR EACH _File NO-LOCK WHERE _File-Num > 0 AND _File-Num < 32768,
EACH _Field OF _File NO-LOCK,
EACH _Field-Trig OF _Field:
EXPORT STREAM s_Field-Trig
_Field-Trig._Field-Recid
&nbs.p; _Field-Trig._File-Recid
_Field-Trig._Event
_Field-Trig._Proc-Name
_Field-Trig._Override
_Field-Trig._Trig-Crc.
DELETE _Field-Trig.
END.
4. The following procedure loads all the 4GL field triggers from the Field-Trig.dat text file in the working directory back into the database:
DEFINE STREAM s_Field-Trig.
INPUT STREAM s_Field-Trig FROM Field-Trig.dat.
DEFINE TEMP-TABLE My_Field-Trig NO-UNDO
FIELD My_Field-Recid LIKE _Field-Trig._Field-Recid
FIELD My_File-Recid LIKE _Field-Trig._File-Recid
FIELD My_Event LIKE _Field-Trig._Event
FIELD My_Proc-name LIKE _Field-Trig._Proc-Name
FIELD My_Override LIKE _Field-Trig._Override
FIELD My_Trig-Crc LIKE _Field-Trig._Trig-Crc.
REPEAT:
CREATE My_Field-Trig.
IMPORT STREAM s_Field-Trig
My_Field-Trig.My_Field-Recid
My_Field-Trig.My_File-Recid
My_Field-Trig.My_Event
My_Field-Trig.My_Proc-Name
My_Field-Trig.My_Override
My_Field-Trig.My_Trig-Crc.
END.
FOR EACH My_Field-Trig WHERE My_Field-Trig.My_Field-Recid <> ?:
CREATE _Field-Trig.
ASSIGN
_Field-Trig._Field-Recid = My_Field-Trig.My_Field-Recid
_Field-Trig._File-Recid = My_Field-Trig.My_File-Recid
_Field-Trig._Event = My_Field-Trig.My_Event
_Field-Trig._Proc-name = My_Field-Trig.My_Proc-Name
_Field-Trig._Override = My_Field-Trig.My_Override
_Field-Trig._Trig-Crc = My_Field-Trig.My_Trig-Crc.
END..