对您有所帮助的是 IBM Redbook VSAM Demystified:http://www.redbooks.ibm.com/abstracts/sg246105.html,如今,您甚至可以通过智能手机获取它,以及其他几种方式。
但是,您目前的理解有点误入歧途,因此您需要先放弃所有这些理解。
VSAM 文件主要分为三种类型,初学者可能只会遇到其中两种:KSDS; ESDS。
KSDS 是 Key Sequenced Data Set(索引文件),而 ESDS 是 Entry Sequenced Data Set(顺序文件,但不是“平面”文件)。
在编写 COBOL 程序时,使用 ESDS 和 flat/PS/QSAM 文件几乎没有区别,使用 KSDS 时甚至没有太大区别。
我不会提供示例,而是向您推荐企业 COBOL 编程指南中的章节,以了解您的 COBOL 版本,您想要的是第 10 章,直到并包括处理错误的部分,并且该出版物可以可以在此处找到:http://www-01.ibm.com/support/docview.wss?uid=swg27036733,一旦您对 COBOL 的含义有了更好的了解,您还可以使用语言参考来详细了解 VSAM 的用途。
作为初级程序员,您不必担心 VSAM 数据集的结构是什么。但是,您已经对该主题有所了解,并且走错了方向。
VSAM 数据集本身只能存在于磁盘上(我们常说的 DASD)。它们可以备份到非 DASD,但只能在 DASD 上直接使用。
它们由控制区域 (CA) 组成,您可以将其视为只是 DASD 的一个块,并且几乎唯一的 DASD 块将是一个气缸(3390 上的 30 条轨道(现在很可能模拟 3390) )。您无需对 CA 了解更多。CA 与其说是实际的物理事物,不如说是概念事物。
控制间隔 (CI) 是任何数据(包括索引数据)所在的位置。 CI 位于 CA 中。
记录,您将在 COBOL 程序中的 FD 下的 FILE SECTION 中拥有的东西将存在于 CI 中。
您的 COBOL 程序无需了解 VSAM 数据集的结构。 COBOL 使用 VSAM 访问方法服务 (AMS) 来执行所有 VSAM 文件访问,就您的 COBOL 程序而言,它是一个“索引”文件,在 SELECT 语句上有一点表示它是一个 VSAM 文件。或者是一个带有一点点的顺序文件……你现在知道了。