COBOL程序操作VSAM文件--添加数据 isam 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
更多阅读
该文件没有程序与之关联来执行该操作怎么办 民事执行程序操作细则
该文件没有程序与之关联来执行该操作怎么办——简介日常生活中,我们打开某一个文件,突然弹出“该文件没有程序与之关联来执行该操作”的提示,并且该文件没有被打开,这是为什么呢?那么,遇到这种情况应该如何解决呢?下面来做一个简单的介绍。
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