基于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中配置属性问题) |
enjoy every minute of an appless, googless and oracless life