0

好像我记得写过一个使用嵌入式 SQL 的 RPG 程序,每当发生 SQL 警告或错误时,它都会向交互式用户作业日志写入一条消息。我不必明确写出来;它默认记录它。

我现在正在编写的程序没有执行此日志记录,尽管我知道我可能会导致类似警告01003和错误,并使用变量02000读取它们。SQLState

我不认为我想象过这种行为。是否有我忘记设置的 H 规范关键字、我调用程序的方式(使用CALL交互)、我编写 SELECT INTO 语句的方式(静态而不是动态)?我对其他想法不知所措。

4

3 回答 3

5

SqlStates 0000001###02###不生成日志,但其他状态会生成日志。我会明确地将任何您想在那里看到的内容写入日志。您可以轻松编写一个子过程,您可以在每个 sql 语句之后调用该子过程来进行日志记录。

于 2018-01-30T19:22:31.303 回答
0

在调试模式 (STRDBG UPDPROD(*YES)) 下运行您的作业,以从所有数据库操作中获取附加诊断信息。

于 2018-01-30T17:49:43.887 回答
0

听起来程序正在注销的工作中运行..

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
于 2018-01-30T16:49:27.850 回答