如何让 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 0000001###02### 不生成日志,但其他状态会生成日志。我会明确地向日志中写入您想在那里看到的任何内容。您可以轻松编写一个子过程,您可以在每个 sql 语句之后调用它来进行日志记录。