我需要知道如何找到一个程序是用 ALWNULL(*USRCTL) (或任何一个)编译的。
命令 DSPPGM 似乎没有提供该信息。
我们正在运行 V7r1。
谢谢你。
我需要知道如何找到一个程序是用 ALWNULL(*USRCTL) (或任何一个)编译的。
命令 DSPPGM 似乎没有提供该信息。
我们正在运行 V7r1。
谢谢你。
无法从程序(或模块)中得知它是用什么 ALWNULL 参数编译的。
揭示为什么要问这个问题,可能会允许做出更好地满足实际需求的回应;即除了遇到错误之外,不太可能需要\希望知道程序是如何编译的。如果进行查询的动力是意外的错误条件,那么也许可以将更合适的问题指向那里。
虽然不是可见属性,但既不通过显示 (DSP) 功能也不通过检索 (RTV) 功能显示,但可以推断设置从 RPG 程序打开数据库文件成员的运行时效果来看。RPG 运行时是否打算使用 Allow-Nulls 功能打开成员的指示将在为该打开创建的开放数据路径 (ODP) 中显示;当然,如果编译器被告知执行 ALWNULL(*USRCTL),但运行时未能执行此操作,则这可能是一个缺陷,并且推断将是不确定的。FWiW RPG DUMP 功能将在“打开反馈”中为已打开的实际 file.mbr 的 ODP 将该值显示为“Null Capable Field File”属性\设置。
也许可以从我的回复中收集到更多信息:http:
//archive.midrange.com/rpg400-l/201504/msg00020.html
http://archive.midrange.com/rpg400-l/201504/msg00022.html
我不确定目的是什么,但是如果对象的源在您的系统上,您可以尝试这种方法。对象可能会告诉您(取决于对象的编译方式)源在哪里,因此您可以编写一个程序从对象中获取元信息,然后让程序打开该源成员并查找是否存在ALWNULL
.
如果您没有源,并且再次取决于对象的编译方式,也许您可以从对象本身中提取源列表并检查它。