我在RPGLE程序中读取文件时遇到了这个奇怪的问题。
fmosdp00 if e k disk prefix(xx:2)
SetLL ('HF':'30':'032':'SK':'0095320':'002':0:0001) mosdp00a;
Reade ('HF':'30':'032':'SK':'0095320':'002':0) mosdp00a;
*Inlr = *On;
上面的setll和reade似乎并未根据需要设置MOSDP00文件的字段值。
当我以调试模式运行此程序并执行eval xxmord(MOSDP00字段)后,它是空白的。
但是,如果我使用以下任何字段添加了一些操作,例如DSPLY XXMORD,则该程序似乎设置了此字段值。
有人可以帮助理解这一点。
RPG编译器优化了未使用的变量。因此,在调试中,如果您尝试查看仅由记录格式隐式定义但未在程序中使用的变量,则不会看到一个值。这不是前缀的问题。添加DSPLY XXMORD
操作时,您添加了该字段的用法,这阻止了编译器将其优化。这使您可以在调试中查看该字段。如果您在未使用的记录格式上尝试另一个字段,它将再次在调试中显示空白。