|
|
我想对一个物理文件加上一个更新触发器,触发执行一个没有关联意义的程序.
(没有用过触发器,想试试如何使用)
但是当调用一个对文件纪录进行更新的程序时,却出现CPF502B错误,然后我试着改了一些触发器添加时候的参数,比如TRG,ALWREPCHG,THDSAFE这几
个,还是没有调用被触发的程序,错误信息为RPG1299.
TRGTIME是*BEFORE或者*AFTER的时候同样的情况。
| xuguopeng 回复于:2004-06-19 00:33:37
| 你的触发器有问题,不是随便拿个程序就能当触发器的
| | qingzhou 回复于:2004-06-19 09:10:52
| 对PF的table建立触发器常见有2种途径:
1。OS/400命令行:
[u:b3172542d7]ADDPFTRG FILE(Library/File) TRGTIME(*BEFORE/*AFTER)
TRGEVENT(*INSERT/*UPDATE/*DELETE) PGM(Library/PGM)[/u:b3172542d7]
2。Navigator下:
主机名→数据库→库 ,然后用“鼠标右键”点击要建触发器的表的属性, 在属性菜单中选中“触发器”一栏, 并选择具体类别的触发器,并用"Lib name/PGM name"的格式填写触发器名至相应的触发器类别.
请先确认以上步骤是否正确。
| | fzrxh 回复于:2004-06-19 10:08:05
| RPG1299错误代码完整信息呢?
可以把SPLF贴出来呀
| | icbcodc 回复于:2004-06-29 16:11:36
| [quote:2a95ac6922="qm"]我想对一个物理文件加上一个更新触发器,触发执行一个没有关联意义的程序.
(没有用过触发器,想试试如何使用)
但是当调用一个对文件纪录进行更新的程序时,却出现CPF502B错误,然后我试着改了一些触发器添加时候..........[/quote:2a95ac6922]
建议你使用UPDDTA命令对文件进行更新,看是不是能正常触发TRIGGER。
| | icbcodc 回复于:2004-06-29 16:24:53
| [quote:536de98f82="qm"]我想对一个物理文件加上一个更新触发器,触发执行一个没有关联意义的程序.
(没有用过触发器,想试试如何使用)
但是当调用一个对文件纪录进行更新的程序时,却出现CPF502B错误,然后我试着改了一些触发器添加时候..........[/quote:536de98f82]
我做过的一点经验:
系统对BEFORE TRIGGER的一些限制:
· Statements not allowed in a trigger program are CONNECT, SET CONNECTION, RELEASE, DISCONNECT, and SET RESULT SETS.
· RUNSQLSTM is not allowed in a trigger program.
· COMMIT and ROLLBACK are not allowed in a trigger program if the trigger program is running in the same activation group as the triggering program. COMMIT and ROLLBACK are not allowed in an SQL trigger.
· ALTER TABLE is not allowed in a trigger program when commitment control is active.
· Statements not allowed in a stored procedure or user-defined function that is running on a remote application server are CONNECT, SET CONNECTION, RELEASE, DISCONNECT, COMMIT, ROLLBACK and SET TRANSACTION.
· Statements not allowed in an SQL BEFORE trigger are INSERT, UPDATE, DELETE, ALTER TABLE, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME, and REVOKE.
· The RETURN statement is not allowed in an SQL trigger.
· Statements not allowed in a secondary thread are CREATE TRIGGER, CREATE FUNCTION (SQL), and CREATE PROCEDURE (SQL).
下面是ACTIVATION TIME为BEFORE时,
| | |