COBOL程序操作VSAM文件--添加数据 isam vsam

开始,我们以KSDS为例,首先,应该存在一个KSDS文件,如下建立一个VSAM文件。
//CREKSDSJOB,NOTIFY=&SYSUID,REGION=4M
//STEPEXECPGM=IDCAMS
//SYSPRINT DDSYSOUT=*
//SYSINDD*
DEFINE CLUSTER ( NAME (IBMUSER.COBOL.KSDS03) -
INDEXED-
RECORDS ( 30 10 )-
RECSZ ( 20 20 )-
KEYS ( 5 0 )-
VOLUME ( Z6RES1))
//
将会生成如下文件--
IBMUSER.COBOL.KSDS03
IBMUSER.COBOL.KSDS03.DATA
IBMUSER.COBOL.KSDS03.INDEX

然后,COBOL程序如下,具体功能为添加一条数据。
IDENTIFICATIONDIVISION.
PROGRAM-ID.VSAMADD.
*
ENVIRONMENTDIVISION.
INPUT-OUTP UTSECTION.
FILE-CONTROL.
*SELECT MACC ASSIGN TOKSDSFILE
SELECT OPTIONALMACC ASSIGN TO KSDSFILE
ORGANIZATIONINDEXED
ACCESS MODEDYNAMIC
RECORD KEYMNO
FILE STATUSFS.
*
DATADIVISION.
FILESECTION.
FDMACC.

01MREC.
05MNOPICX(5).
05MNAMEPICX(10).
WORKING-STORAGESECTION.
01FSPIC X(2) VALUE '00'.
01APIC 99 VALUE00.
01BPIC 9(5) VALUE ZERO.
01IREC.
05INOPIC9(5).
05INAMEPICX(10).
*
PROCEDUREDIVISION.
000-MAIN.
OPEN I-OMACC.
DISPLAYFS.
IF FS ='00'
THEN
DISPLAY'NORMAL'
END-IF.
MOVE '00003' TOMNO.
MOVE 'GEORGE' TOMNAME.
WRITE MREC INVALID KEY DISPLAY 'DUPLICATE KEY!'.
IF FS ='00'
DISPLAY 'INSERT A RECORD TOFILE',
DISPLAY 'NUMBER: 'MNO,
DISPLAY 'NAME: 'MNAME,
END-IF.
DISPLAY '',
DISPLAY 'RECORD LIST OFFILE'.
MOVE '00000' TOMNO.
START MACC KEY GREATERMNO.
0001.
READ MACC NEXT INTO IREC AT END GO000X.
DISPLAY INO , ' ' ,INAME.
GO0001.
000X.
CLOSEMACC.
STOPRUN.
其中,最重要的是SELECT语句打开空文件时要加上OPTIONAL条件,否则,会有如FILESTATUS=35类似的错误。

最后,通过JCL运行此COBOL程序,实现功能。
//SPSMSGAJOB,NOTIFY=&SYSUID
//STEP010EXECPROC=IGYWCLG
//COBOL.SYSIN DDDSN=IBMUSER.COBOL.SOURCE(VSAMADD),DISP=SHR
//GO.KSDSFILE DDDSN=IBMUSER.COBOL.KSDS03,DISP=SHR

查看结果:
output--
05
INSERT ARECORD TO FILE
NUMBER:00003
NAME:GEORGE

RECORDLIST OFFILE
00003GEORGE

使用DITTO查看VSAM文件:
DITTO/ESA forMVSVB - VSAMBrowse

CATALOG
RBA0Key00003Col1Format CHAR
VOLSERZ6RES1 TypeKSDS DSNAMEIBMUSER.COBOL.KSDS03

RBALen<===>...10....5...20....5...30....5...40....5...50....5...60
01500003GEORGE
****End of data****

结束!


同时可以添加多条数据,复制写代码
MOVE '00003' TOMNO.
MOVE 'GEORGE' TOMNAME.
WRITE MREC INVALID KEY DISPLAY 'DUPLICATE KEY!'.
MOVE '00005' TOMNO.
MOVE 'GGGEEE' TOMNAME.
WRITE MREC INVALID KEY DISPLAY 'DUPLICATEKEY!'.
即写入了两条数据,output输出如下:
00
NORMAL
INSERT ARECORD TO FILE
NUMBER:00005
NAME:GGGEEE

RECORDLIST OFFILE
00003GEORGE
00005GGGEEE


  

爱华网本文地址 » http://www.413yy.cn/a/25101016/317317.html

更多阅读

sql脚本怎样保存、打开脚本文件? bat脚本打开文件

sql脚本怎样保存、打开脚本文件?——简介相信数据库对于软件开发、实施或者测试来说都不陌生,不论是创建数据库表还是查询、添加、删除、修改的一些操作语句,都需要脚本文件。以SqlServer2005为例介绍其操作过程,其他数据基本相同。sql

.bak格式文件怎么打开 bak文件怎么打开查看

.bak格式文件怎么打开——简介.bak文件时应用程序自己的一种数据的备份文件,我们在使用记事本、cad、word软件的时候,会自动的生成.bak格式的文件,接下来教大家如何打开这种文件,以供自己使用,希望能够帮助到大家。.bak格式文件怎么打开

windows系统hosts文件位置及操作 windows7操作系统教程

windows系统hosts文件位置及操作——简介hosts文件相当于一个个人的DNS,当你访问某个域名时,是先通过hosts进行解析的,没有找到才进一步通过外网DNS服务器进行解析。本文将讲解hosts文件在windows系统中的位置及如何操作hosts文件。wi

声明:《COBOL程序操作VSAM文件--添加数据 isam vsam》为网友我紶分享!如侵犯到您的合法权益请联系我们删除