如何知道程序是用ALWNULL编译的(* USRCTL)

时间:2015-04-01 19:52:44

标签: ibm-midrange rpgle rpg

我需要知道如何找到一个程序是用ALWNULL(* USRCTL)(或其他任何一个)编译的。

命令DSPPGM似乎没有提供该信息。

我们正在运行V7r1。

谢谢。

3 个答案:

答案 0 :(得分:4)

没有办法从程序(或模块)告诉它编译了什么ALWNULL参数。

答案 1 :(得分:2)

显示为什么提出问题,可能会提供更好地满足实际需求的响应;即,除了遇到错误之外,不太可能需要知道程序是如何编译的。如果进行调查的动力是一个意想不到的错误条件,那么也许可能会有一个更合适的问题指向那里 虽然不是可见属性,但既不通过显示(DSP)功能也不通过检索(RTV)功能进行清单,因此可以从打开数据库文件成员的运行时效果推断 RPG计划。 RPG运行时是否打算使用Allow-Nulls功能打开成员的指示将在为该Open创建的开放数据路径(ODP)中显示;当然,如果编译器被告知影响ALWNULL(* USRCTL),但运行时间未能这样做,那可能是一个缺陷,推断将是不确定的。 FWiW RPG DUMP功能将该值显示为打开的实际file.mbr的ODP的“OPEN FEEDBACK”中的“Null Capable Field File”属性\设置。
或许可以从我的回复中收集更多信息在这里:
http://archive.midrange.com/rpg400-l/201504/msg00020.html
http://archive.midrange.com/rpg400-l/201504/msg00022.html

答案 2 :(得分:0)

我不确定目的是什么,但如果对象的源位于您的系统上,您可以尝试这种方法。该对象可能会告诉您(取决于对象的编译方式)源的位置,因此您可以编写程序以从对象获取该元信息,然后让程序打开该源成员并查找是否存在ALWNULL

如果您没有源,并且再次取决于对象的编译方式,也许您可​​以从对象本身中提取源列表并检查它。