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

RPGLE How to use SETLL and READE to find duplicate records for a keyed field

谁能给我一个使用 SETLL 和 READE 查找键控字段重复记录的示例。

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

/free
read filename;              

dow not %eof(filename);     


SETLL (XXPART)OUTPUTWORKFILE; 
IF NOT %EQUAL(OUTPUTWORKFILE);
write OUTPUTWORKFILE;  
enddo;      

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

提前致谢。

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

结合使用
read filename;              
dow not %eof(filename);     
  setll (xxplnt: xxpart) outputworkfile;
  if not %equal(outputworkfile);
    write outputworkfile;
  endif;
  read filename;
enddo;

@jmarkmurphy 有一个合理的答案,但我也认为如果可以的话,使用 SQL 会更容易。

select xxplnt, xxpart from filename
group by xxplnt, xxpart
having count(*) > 1