在 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 时无法读取下一条记录的主要内容,如果未能解决你的问题,请参考以下文章

无法将字母从物理顺序文件复制到 KSDS 集群

如果我们在输入 ksds 中使用具有动态访问模式的备用键概念,是不是可以写入输出 ksds?

调试 Unity 游戏时无法“设置下一条语句”

asp中如何读取当前记录的上一条和下一条记录

IO流知识盲点

如何手动编辑 KSDS VSAM 文件的密钥?