我的问题与文件状态 23 有关,根据MicroFocus 的说法,这意味着在我尝试READ
从 .DAT 文件时:
“表示没有找到记录。”
或者
“指示重复键条件。已尝试存储将在索引或相关文件中创建重复键的记录或不允许重复的重复备用记录键。”
我已经消除了后者是我的问题的事实,因为在这种情况下我允许重复。
我难住的原因是我正在使用 aSTART
导航到我的 .DAT 文件中的记录,当我READ
在START
定位我的文件指针之后执行 a 时,我得到文件状态 23。
这是我的代码:
900-GET-INST-ID.
OPEN INPUT INST-MST.
MOVE FALL-IN-INST TO INST-NAME-REC.
START INST-MST
KEY EQUAL TO INST-NAME-REC
INVALID KEY
DISPLAY "RECORD NOT FOUND"
NOT INVALID KEY
READ INST-MST
MOVE INST-ID-REC TO WS-INST-ID
END-START.
CLOSE INST-MST.
Run Code Online (Sandbox Code Playgroud)
因此,当我运行此代码时,我START
成功运行并进入NOT INVALID KEY
块,然后执行下一行并且我的读取为空。如果我的备用键 ( INST-NAME-REC
) 实际上是在 .DAT 中找到的,怎么会这样?
我已经确保我的 FD 图片子句在 ISAM Build 程序和这个程序(阅读程序)中完全匹配。
cobol ×1