动态READ… RECORD INVALID KEY在COBOL中无法正常工作。怎么解决?

一个带文件控制的Cobol程序,如下所示:
SELECT D-FLAT-FILE ASSIGN TO DFLAT-FILE
       ORGANIZATION IS INDEXED
       ACCESS MODE IS SEQUENTIAL 
       FILE STATUS IS RECORD-STAT
       RECORD KEY IS D_KEY OF D-FLAT-FILE DESCENDING WITH DUPLICATES.


SELECT C-MAST-FILE ASSIGN TO CMAST-FILE
       ORGANIZATION IS INDEXED
       ACCESS MODE IS DYNAMIC 
       FILE STATUS IS RECORD-STAT
       RECORD KEY IS C_KEY OF C-MAST-FILE.
从第一个平面文件中读取记录,如下所示:
PROCESSING.
    READ D-FLAT-FILE NEXT RECORD
        AT END ....END READ.
并读取第二个DYNAMIC文件上的记录,如下所示:
READ C-MAST-FILE RECORD
     INVALID KEY
     GO TO PROCESSING.
除1例外,一切顺利。如果第一个平面文件中的第一个记录与第二个动态文件中的任何记录都不匹配,则程序进入无限循环而不是执行GO TO PROCESSING。我检查了手册,全部按手册(这是VAX Cobol)。我错过了什么?     
已邀请:
最佳做法是为每个文件使用不同的FILE STATUS变量。在您的情况下,您没有向我们展示足够的上下文来查看问题。但是如果你在循环中查看RECORD-STAT,那么从C-MAST-FILE读取的失败可能会让你感到悲伤。     

要回复问题请先登录注册