将记录添加到 VSAM DATASET [关闭]

Posted

技术标签:

【中文标题】将记录添加到 VSAM DATASET [关闭]【英文标题】:Adding records to VSAM DATASET [closed] 【发布时间】:2014-10-09 05:47:51 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

对您有所帮助的是 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 文件。或者是一个带有一点点的顺序文件……你现在知道了。

【讨论】:

谢谢你..我今天什至做了一个程序。那本书的描述性非常好,现在我开始了解 VSAM

以上是关于将记录添加到 VSAM DATASET [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何计算分配给 VSAM 文件的空间

使用 Java JDBC 写入时 VSAM 文件锁定

使用 TSQ 浏览 VSAM 文件和 DB2 表

JCL,我需要将我的 VSAM 文件引入我的 cobol 使用的 DD 语句是啥

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

是否有将 VSAM 文件作为 tbble 或数据框导入的 R 包?