RPGLE 如何使用 SETLL 和 READE 查找带键字段的重复记录

0 rpgle freeform ibm-midrange

有人可以给我一个使用 SETLL 和 READE 为键控字段查找重复记录的示例。

目前,我正在处理的文件有 3 个键控字段。我要查找重复项的字段是顺序中的第二个键。我不确定如何以自由格式对此进行编码,我使用 READE 和 SETLL 来查找重复记录。

/free
read filename;              

dow not %eof(filename);     


SETLL (XXPART)OUTPUTWORKFILE; 
IF NOT %EQUAL(OUTPUTWORKFILE);
write OUTPUTWORKFILE;  
enddo;      
Run Code Online (Sandbox Code Playgroud)

我知道我不能只跳到第二个键控字段(XXPART),所以我必须包含第一个键控字段(XXPLNT)。只是不知道如何以自由形式做到这一点。也不确定我应该把reade放在哪里。

提前致谢。

jma*_*phy 5

我认为你不需要reade做你想做的事。setll只要您不需要 outfile 中的任何内容就足够了。请注意,您可以将复合键与setll.

read filename;              
dow not %eof(filename);     
  setll (xxplnt: xxpart) outputworkfile;
  if not %equal(outputworkfile);
    write outputworkfile;
  endif;
  read filename;
enddo;
Run Code Online (Sandbox Code Playgroud)