在 CICS 中浏览 KSDS 时无法读取下一条记录
Posted
技术标签:
【中文标题】在 CICS 中浏览 KSDS 时无法读取下一条记录【英文标题】:Not able to read next record while browsing KSDS in CICS 【发布时间】:2018-07-07 11:47:23 【问题描述】:我正在尝试使用 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
【问题讨论】:
能否提供更多代码;例如STARTBR 和逻辑。 如果工作正常,搜索执行 READNEXT 的现有程序(最好在同一个文件上)并复制它。 已经在大型机论坛上询问并处理过。 @NicC 如果你知道答案可以在这里提供吗? @meat:没有给出答案,因为发帖者没有提供进一步要求的信息,而且可能永远不会,也不会说“谢谢”,或者返回解决方案。 【参考方案1】:从描述看来,RIDFLD 在第 1 次和第 2 次请求之间发生了变化,可能已被清除,这将导致浏览器重新定位以在 RIDFLD 中传递新值后查找下一条记录。
确保 RIDFLD 在第二个 READNEXT 上具有第一个 READNEXT 返回的值。
【讨论】:
以上是关于在 CICS 中浏览 KSDS 时无法读取下一条记录的主要内容,如果未能解决你的问题,请参考以下文章