我想获得给定范围之间的最大键值。(最大值在 1000 到 2000 之间)。在我的 VSAM 数据下方。
钥匙
1001
1002
1003
2001年
2006年
现在我已将 1999 年移至键并开始搜索
START VSAM-KSDS-FILE KEY IS > 1999
然后我读了下一条记录,但我得到了 2001 但我想要 1003 的最大键值。(1000 到 2000 之间的最大值)
我怎样才能得到这个值?
在我们READ PREVIOUS
使用 RM/Cobol(这是天赐良机)之前,我们使用“反向键”来处理这类事情。
例如,假设您的密钥只有 4 位数字。您将REV-KEY
在记录中有一个字段等于 10000 减去真实键。将其定义为备用键,您可以从该键开始REV-KEY
设置为 10000 - 1999。
当然,如果你没有能力改变文件的结构,那么没有READ PREVIOUS
.
如果您已经知道某事而不必去寻找它,它可以节省大量时间。
所以,不要失去价值,保持它,你永远不必去寻找它。
在文件中有一个“控制记录”,其中包含您想要的值,或者有一个单独的“控制文件”包含控制记录。
您确实会检查所有数据是否都在同一日期,不是吗?“营业日期”还是“数据日期”?因此,如果使用控制文件,该文件当然会包含您将与 KSDS 上现有的业务/数据日期匹配的业务/数据日期。
大型机上没有人只是假设一切都是正确的。他们有吗?