-2

我正在尝试使用 STARTBR 和 READNEXT 顺序读取 VSAM KSDS 文件。我能够阅读第一条记录。处理第一条记录后,我期待在执行 READNEXT 时从 VSAM 读取第二条记录,但只再次读取第一条记录。你能帮忙吗?我使用相同的行 2 次:在 STARTBR 之后 1 次,在第 1 次之后读取下一条记录时 1 次。

MOVE LENGTH OF WS-INPUT-DATA TO X01-KEY1-LENGTH
EXEC CICS READNEXT DATASET(X01-INPUT-NAME)     
               INTO(WS-INPUT-DATA)         
               RIDFLD(X01-KEY1)            
               LENGTH(X01-KEY1-LENGTH)     
               RESP(X-RESP)                 
END-EXEC                                   
4

1 回答 1

3

从描述来看,RIDFLD 似乎在第一次和第二次请求之间发生了变化,可能已被清除,这将导致浏览器重新定位以在 RIDFLD 中传递新值后查找下一条记录。

确保在第二个 READNEXT 中,RIDFLD 具有第一个 READNEXT 返回的值。

于 2018-07-09T09:00:22.763 回答