我正在尝试使用STARTBR和READNEXT顺序读取VSAM KSDS文件。我能够读取第一条记录。处理完第一条记录后,我期望执行READNEXT时会从VSAM中读取第二条记录,但只再次读取第一条记录。您能在这里帮忙吗?我在2行中使用相同的行:在STARTBR之后执行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
答案 0 :(得分:2)
从描述中看,RIDFLD在第一个请求和第二个请求之间已更改,可能已清除,这将导致浏览器重新定位,以在RIDFLD中传递新值后查找下一条记录。
确保在第二个READNEXT上RIDFLD具有第一个READNEXT返回的值。