SETLL READE 前缀文件

SETLL READE for a prefixed file

我在 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 字段)post READE 时,它是空白的。

但是如果我使用这些字段中的任何一个添加一些操作,例如 DSPLY XXMORD,那么程序似乎设置了这个字段值。

谁能帮忙理解一下。

RPG 编译器优化了未使用的变量。所以在调试中,如果你试图查看一个仅由记录格式隐式定义但未在程序中使用的变量的值,你将看不到值。这不是前缀的问题。当您添加 DSPLY XXMORD 操作时,您添加了该字段的用法,这阻止了编译器对其进行优化。这使您可以在 Debug 中查看该字段。如果您在未使用的记录格式上尝试另一个字段,它将在调试中再次显示空白。