基于CICS的COBOL程序顺序文件处理

CICS顺序文件处理中,使用浏览(browse)概念来进行操作。因而这些操作包括开启浏览,执行文件记录读取(正向/反向),关闭浏览等。

由于是CICS命令,在COBOL中使用时,必须包含在EXEC CICS语句对中。

浏览可以用于访问VSAM文件,包括PDS,ESDS, KSDS和RSDS。

1. 开启浏览(Start Browse)命令 STARTBR,命令格式:

STARTBR FILE(<file>)        FCT中的文件名
        RIDFIEILD(<data>)   定义起始位置,可以是索引键值(Key),RRN或RBA
        [RRN | RBA]         指示起始位置表述是RRN(Relative Record Number用于RRDS)还是RBA
                            (Relataive Byte Addres用于ESDS或KSDS)
        [GTEQ | EQUAL]      起始于第一个键值大于等于或严格等于指定索引键值的记录
                            (故只对RIDFIELD为索引键有效)
        [GENERIC]           只对KSDS有效,指示仅部分RIDFIELD指定的键值被使用
        [KEYLENGTH(data | literal)]  和GENERIC共用,用于指示键长。二进制半字长或字面值
        [RESP(<response-code>)]      返回条件值

如果找到没有匹配记录,则返回NOTFND条件值,否则返回NORMAL条件值。

2. 顺序读取(前向READNEXT / 反向READPREV),命令格式:

{ READNEXT | READPREV } FILE(<file>)   FCT中的文件名
                        INTO(<data>)   读出数据的存放位置
                        RIDFLD(<data>) 位置指针,和开启浏览相承,会随着读取而相应前进或后退;
                                       用户也可在读取之前指定之从而设定读取位置
                        [RRN | RBA]    起始位置表述内容,类似于开启浏览
                        [KEYLENGTH(~)] 类似于开启浏览

注意:使用GENERIC开启的浏览,无法使用反向阅读。


3. 关闭浏览命令ENDBR,命令格式:

ENDBR  FILE(<file>)     FCT中的文件名

4. 重置浏览命令RESETBR,命令格式:

RESETBR FILE(<file>)
        RIDFLD(<data>)
        [RRN | RBA]
        [GTEQ | EQUAL]
        [GENERIC]
        [KEYLENGTH(~)]

其参数和开启命令类似,起作用是重新开始一个已经打开的浏览


返回条键值表:

条件值 原因
FILENOTFOUND 文件没有在FCT中定义
ENDFILE 到达文件边缘,没有记录可读
ILLOGIC VSAM错误
INVREQ 浏览命令错误,通常是没有在读取之前启动浏览
IOERR 底层输入输出错误
NOTFND 命令中指定的记录没有找到
NOTOPEN 文件没有打开(FCT中配置属性问题)

posted @ 2011-10-29 22:09  quanben  阅读(519)  评论(0编辑  收藏  举报