小编Web*_*ebs的帖子

START 后 READ 上的文件状态 23

我的问题与文件状态 23 有关,根据MicroFocus 的说法,这意味着在我尝试READ从 .DAT 文件时:

“表示没有找到记录。”

或者

“指示重复键条件。已尝试存储将在索引或相关文件中创建重复键的记录或不允许重复的重复备用记录键。”

我已经消除了后者是我的问题的事实,因为在这种情况下我允许重复。

我难住的原因是我正在使用 aSTART导航到我的 .DAT 文件中的记录,当我READSTART定位我的文件指针之后执行 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

5
推荐指数
1
解决办法
6327
查看次数

标签 统计

cobol ×1