如何让 RPGLE 程序将 SQL 警告和错误写入作业日志?
How do you make an RPGLE program write SQL warnings and errors to the job log?
我好像记得写过一个使用嵌入式 SQL 的 RPG 程序,只要出现 SQL 警告或错误,它就会向交互式用户作业日志中写入一条消息。我不必明确地写它;它默认记录它。
我现在正在编写的程序没有执行此日志记录,尽管我知道我会导致 01003
之类的警告和 02000
之类的错误并使用 SQLState
变量读取它们。
我想我没有想象到这种行为。是否有我忘记设置的 H 规范关键字,我调用程序的方式(使用 CALL
交互式),我编写 SELECT INTO 语句的方式(静态而不是动态)?我对其他想法一无所知。
听起来程序正在 运行 正在注销作业中..
DSPJOB --> 2.显示作业定义属性
提供最多的日志...
Message logging:
Level . . . . . . . . . . . . . . . . . . . . . : 4
Severity . . . . . . . . . . . . . . . . . . . : 0
Text . . . . . . . . . . . . . . . . . . . . . : *SECLVL
Log CL program commands . . . . . . . . . . . . . : *YES
Job log output . . . . . . . . . . . . . . . . . : *JOBEND
基本不提供日志...
Message logging:
Level . . . . . . . . . . . . . . . . . . . . . : 0
Severity . . . . . . . . . . . . . . . . . . . : 99
Text . . . . . . . . . . . . . . . . . . . . . : *NOLIST
Log CL program commands . . . . . . . . . . . . . : *NO
Job log output . . . . . . . . . . . . . . . . . : *JOBEND
运行 您的作业处于调试模式 (STRDBG UPDPROD(*YES)),以便从所有数据库操作中获取更多诊断信息。
SqlStates 00000
、01###
和 02###
不生成日志,但其他状态会生成日志。我会明确地向日志中写入您想在那里看到的任何内容。您可以轻松编写一个子过程,您可以在每个 sql 语句之后调用它来进行日志记录。
我好像记得写过一个使用嵌入式 SQL 的 RPG 程序,只要出现 SQL 警告或错误,它就会向交互式用户作业日志中写入一条消息。我不必明确地写它;它默认记录它。
我现在正在编写的程序没有执行此日志记录,尽管我知道我会导致 01003
之类的警告和 02000
之类的错误并使用 SQLState
变量读取它们。
我想我没有想象到这种行为。是否有我忘记设置的 H 规范关键字,我调用程序的方式(使用 CALL
交互式),我编写 SELECT INTO 语句的方式(静态而不是动态)?我对其他想法一无所知。
听起来程序正在 运行 正在注销作业中..
DSPJOB --> 2.显示作业定义属性
提供最多的日志...
Message logging:
Level . . . . . . . . . . . . . . . . . . . . . : 4
Severity . . . . . . . . . . . . . . . . . . . : 0
Text . . . . . . . . . . . . . . . . . . . . . : *SECLVL
Log CL program commands . . . . . . . . . . . . . : *YES
Job log output . . . . . . . . . . . . . . . . . : *JOBEND
基本不提供日志...
Message logging:
Level . . . . . . . . . . . . . . . . . . . . . : 0
Severity . . . . . . . . . . . . . . . . . . . : 99
Text . . . . . . . . . . . . . . . . . . . . . : *NOLIST
Log CL program commands . . . . . . . . . . . . . : *NO
Job log output . . . . . . . . . . . . . . . . . : *JOBEND
运行 您的作业处于调试模式 (STRDBG UPDPROD(*YES)),以便从所有数据库操作中获取更多诊断信息。
SqlStates 00000
、01###
和 02###
不生成日志,但其他状态会生成日志。我会明确地向日志中写入您想在那里看到的任何内容。您可以轻松编写一个子过程,您可以在每个 sql 语句之后调用它来进行日志记录。