1

我对 VSAM 有一些困惑,因为我是新手。请纠正我的错误并解决问题。

一个簇包含控制区域,一个控制区域包含控制间隔。一个控制区间包含一个数据集。现在为了定义一个集群,我们提到了一个数据组件和索引组件。现在我们给出的这个数据组件的名称创建了一个数据集,索引的名称生成了一个键。我的查询如下 -


1)如果我必须在该数据集中添加一条新记录,程序是什么?
2)在控制区域创建新数据集的程序是什么?
3)创建后如何访问数据集和特定记录?

我试图找到一个简单的代码,但无法用一个简单的例子来解释。

4

1 回答 1

6

对您有帮助的一件事是 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,一旦您对 VSAM 有更好的理解,您还可以使用语言参考了解您可以使用 VSAM 的详细信息到 COBOL。

作为初级程序员,您不必担心 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 文件。或者是一个带有一点点的顺序文件......你现在知道了。

于 2014-10-09T06:53:03.280 回答