GB/T 4092.5-1992
标准分类号
标准ICS号:信息技术、办公机械设备>>35.060信息技术用语言
中标分类号:电子元器件与信息技术>>信息处理技术>>L74程序语言
相关单位信息
首发日期:1983-12-26
复审日期:2004-10-14
起草单位:南京大学
归口单位:全国信息技术标准化技术委员会
发布部门:国家技术监督局
主管部门:国家标准化管理委员会
标准简介
GB/T 4092.5-1992 程序设计语言COBOL 相对I-O模块 GB/T4092.5-1992 标准下载解压密码:www.bzxz.net
标准内容
1引言
1.1功能
中华人民共和国国家标准
程序设计语言COBOL
相对I-0模块
Programming language COBOL
Relative I-0 module
GB/T4092.5—92
代替 GR 4092. 5—83
相对1-模块提供以随机方式或懒序方式存取游量存储器上的文卷的记录的功能。相对文卷中的每个记录都用-个大于零的整数唯地标识,该整数指明文卷中记录的遗辑顺序位置。1.2级别特征
1级相对I-O对文卷控制款、文卷描述款和1-OCONTROL段中的款提供局部功能。在过程部中1 级相对 I-O 对 CLOSE、OPEV、READ、REWRITE、USE 和 WRITE 语句提供局部功能,而对DELETE提供完整功能。
2级树对I-O对文卷控制款、文卷描述款及I-OCONTROL段中各款提供了完整功能。在过程部中,2 级相对I-O 对 CLOSE、DELETE,(PEN、READ,REWRITE,START,USE和 WRITE 语句提供了完整功能。
1.3语言概念
1. 3. 1组织
相对组织文卷是一个海量存储文卷。任何记录可以通过提供相对记录号的值来存储或检索。这种文卷也可以认为是由一串区域组成。每个区域能存放一个逻辑记录。每个区域出个相对记录号命名。根据这个号存储和检案记录。例如,第10个记录是相对记录号为10且在第10个记录区域中的一个记录。不管第1到第 9个记录区域是否已写过。为了在相对文卷中更有效地存取记录,在媒体上为存储一个特定逻辑记录而保留的字符位置数可以不同于在程序中描述的那个记录的字符位置数。1.3:2存取方式
对于相对组织,在其顺序存取方式中,记录存取的次序就是该文卷中所有现存记录的相对记录号的递增次序。只有当前存在丁文卷中的记录是有效的。START语句可以用于为其后一系列顺序检索建立一个开始点。在随机存取方式中,输入输出语句用于按程序员指定的次序存取记录.要存取所需的记录就把它的相对记录弓存放在相对键数据项中。在动态存取方式中,程序员可以利用适当的输入输出语句随意地把顺序存取改变成随机存取。1.3.3文卷位置指示符
文卷位置指示符是本标准中为了便于在某…-输入输出操作中指明给定的文卷中要存取的下个记录而使用的一个概念实休。文卷位置指示符概念对按输出或延伸方式打开的文卷是无意义的。文卷位国家技术监督局1992-08-04批准1993 05-01实施
GB/T 4092.5—92
置指示符的值只受CLOSE、OPEN.START和READ语句的影响。1.3.410状态
I-O 状态是一个两学符的概念实体。赋给它的值指明了 CLOSE、DEI.FTE、(>PEN、READREWRITE、START或WRITE语句执行期问的状态,指明了与该1-O语句相联系的任一命令语句执行之前的状态,或任可应用的USEAFTERSTANDARDEXCEPTION过程执行之前的状态。通过使用该文卷的文控制款中的FILESTATUS子句,使I-O状态值对COBOL程序是可用的。1-O状态也决定是否执行-个可用的USEAFTERSTANDARDEXCEPTION过程。如果不是包含在标题“成功的结束”下的任何条件,则这个过程可以根据其它地方所述的规则执行。如果是在标题“成功的结束”下列出的一个条件,则不执行这种过程(见4.6USE语句)。某些类的I()状态值指出关键错误条件。它们是:任何以数学3或4和任何由实现者作为关键定义的以数字9开始的错误条件。如果输入输出操作的I-0状态值指出这种错误条件,那么实现者确定在执行任可用的USEAFTERSTANDARDEXCEPTIO>N过程之后所要采取的动作,或者若没有可用的上述过程.则实现者确定输入输出控制系统销误标准处理之后采取什么动作。I-O状态根据输入输出操作完成的情况表示下列条件之一:(1)成功的结束。成功地执行输入输出语句。(2)到木端。作为末端条件的结果,顺序的READ语句执行不成功。(3)无效键。作为-一个尤效条件的结果,输入输出语句执行不成功。(4)永久性错误。出于发生了阻止文卷的进一步处理的错误.使输入输出语句执行不成功,且执行指定的例外过程。除非调用实现者定义的改正永久性错误条件的技术,否则在余下的输入输出操作中该条件-直有效。
(5)逻辑错误。作为-种不适当的对文卷执行的输入输出操作结果或作为违反用广定义的限制的结果,输入输出语句执行不成功。(6)实现者楚义。由于满足了实现者指定的条件,输入输出语句执行不成功。下面列出上述条件的I-)状态值,这些条件是在对一相对文卷进行输入输出操作之后产的。姐果个以上的值适用,由实现者决定哪-个可用的值放入I-0状态。(1)戚功的结束
a。[-)状态一00。输入输出语句执行成功,对有关输入出操作没有进一步的信息可用。b。I-O状态一04。KEAD谱句执行成功,但被处理的记录长度与相应文卷的固有文卷属性不一致。
T:“【-O状态=05。成功执行了OPEN语句,供在执行OPEN时,引用的任选文卷没有出现。如果打开方式是1I-0或延伸方式,则文卷已被建立,(2)不成功结束的末端条件
aI-O状态一10。试图执行一个顺序REAT)语句,且文卷中不存在下一个逻辑记录。因为:1)已到文卷未尾,或
2)在·个不出现的任选输入文卷上第一次试图执行顺序的REAI>语句。bI-(状态=14。对个相对文卷试图执行一个懒序的READ语句,而相对记录号中有效数字的位数大于为该文卷描述的相对键数据项的长度。(3)不成功结束的无效键条件
。1.0状态=22。试图写·.个在相对文卷上建立一个重复键的记录。b.I-0状态=23。此条件的存在是因为:1)试图随机地存取一个文卷中不存在的记录;或2)试图对一个不存在的任选输入文卷执行START或随机READ语句。GB/T 4092.5—92
c,1-0状态=24。试图写到相对文卷定义的界限之外。实现者规定定义界限的方法,或者试图对相对文卷执行顺序的WRITE语句且相对记录号巾有效数字的位数大于为文卷描述的相对键数据项的长度。
(4)不成功结束的永久性错误条件aI-0状态一30。存在一个永久性错误并且没有和输入输出操作有关的进一步可用信息。b,I-0状态一35。存在“个永久性错误,因为试图对一个不出现的非任逸文卷执行带有IN-PUT,I-O或EXTEND短语的OPEN语句。cI-O状态=37.存在·:个永久性错误,因为试图执行一个OPEN语句且那个文卷不支持OPEN语句中规定的打开方式。可能的出错情形是:1)规定了EXTEND或OUTPUT短语,但文卷不支持写操作。2)规定了1-0短语,但文卷不支持以1-0方式打开的相对文卷所允许的输入输出操作。3)规定了INPUT短语,但文卷不支持读操作。d.1-0O状态=38。存在一个永久性错误,因为对--个先前用键关闭的文卷试图执行OPEN语句。e.
相矛盾。
I-0状态=39。OPEN语句执行不成功,因为固有文卷属性和在程序中为文卷规定的属性之间(5)不成功结束的逻辑错误条件a,I-O状态41。试图对已打开的文卷执行OPEN语句。b.I-O 状态42。试图对处于非打开状态的文卷执行 CLOSE语句。c.I-O状态一43。在顺序存取方式下,在执行DELETE或REWRITE语句之前所执行的最后一次输入输出语句不是成功的READ语句。d.I-0状态=44。违反边界,因为:1)试图写或重写比有关文卷名规定的RECORDISVARYING子句所允许的最大记录要大,或比最小记录要小的记录。
2)在1级中试图重写个记录到相对文罄中且此记录与被代替的记录长度不致。。1-0状态=46。试图对~个以输入方式或I-O方式打开的文卷执行顺序的READ语句且还未建立有效的下个记录。因为:
1)先前的START语句执行不成功,或2)先前的READ语句执行不成功但未引起末端条件,或3)先前的READ语句引起个末端条件。f.1-O状态=47。试图对一个不是以输入或IO方式打开的文卷执行一个READ或START语句。
g-I-状态一48。试图对一个不是以 I-O,辅出或扩履方式打开的文卷执行 WRITE语句。h,I-O状态一49。对一个不是以I-O方式打开的文卷试图执行I>ELETE或REWRITE语句。(6)实现者定义的不成功结束条件a,J-0状态=9X。存在一个实现者定义的条件。这个条件不能与1-0状态值00到49的任何个条件重复。X的值由实现者定义。1.3.5无效键条件
INVALIDKEY条件可能作为START、READ、WRITE、REWRITE或DELETE语的执行结果出现。当无效键条件出现时,识别出条件的输入输出语句的执行是不成功的且文卷不受影响(览4.3DELETE语句;1.5READ语句:4.6REWRITE语句:4.7START语句,4.9WRITE语何)。在执行一个输入输出语句规定的输人输出操作之后如果出现无效键条件,按下面给出的次序进行处理:
CB/T 4092. 5-92
(1)把值置入有关语句文卷连接区的10状态,以指明一个无效键条件(见1.3.4I-0状态)。(2)若INVALID'KEY短语在产生该条件的语句中指明,则将控制转移到IVVALIDKEY命令语句,对该义卷指明的任何USEAFTEREXCEPTION过程都不执行。然后根据命令语句规定的每个语句的规则继续执行。如果一个分支过程或引起显式控制转移的条件语句执行时,则根据那个语的规则控制转移:否则,直到完成执行INVALIDKEY短语中规定的命令语句,控制转移到输入输出语句的结束处且怒略VOTINVALIDKEY短语(如果已指明的话)。(3)如果在输入输出语句中未规定INVALIDKEY短语,--个USEAFTEREXCEPTIC>N过程必须与文卷连接区相联系,执行那个过程并且根据USE语句的规则进行控制转移。如果规定了NOTINVALID短则忽略它(见4.8USE语句)。如果在执行了由输入输山语句规定的输入输出操作之后不存在无效键条件,则忽略已规定的INVALIDKEY短语。与语句有关的文卷连接区的I-O状态更新且发生下列动作:(1)如果存在一个非有效键条件的例外条件,在执行任何-个与文卷连接符有关的USEAFTEREXCEPTION过程之后,接USE语句的规则进行控制转移(见4.8USE语句)。(2)如果不存在例外条件,控制转移到输入输出语句的结束处或转到在NOTINVALIDKEY短语中规定的(如果已指明的话)命令语句。在后一种情况,根据在那个命令语句中规定的每一个语句的规则继续执行。如果执行一个分支过程或执行引起显式控制转移的条件语句,则根据那个语句的规则进行控制转移;否则,直到完成执行NOTINVALIDKEY短语中的命令语句,控制才转移到输入输出语句的结束处。
1.3.6未端条件
末端条件可作为READ语句执行的结果.产生该条件的细节,见4.5READ语句。1.3.7文卷属性冲突条件
执行OPEN、REWRITE或WRITE语句可能出现文卷属性冲突条件。当发生文卷属性冲突条件时,识别出此条件的输入输出语句执行是不成功的,文卷不受影响(见4.4OPEN语句;4.GREWRITE语句,4.9WRITE语句)。
当识别到文卷属性冲寒条件时,发生下列次序的动作:(1)对与文卷名有关的1-0状态赋值以指出文卷属性冲突条件(见1.3.41-0状态)。(2)执行与文卷名有美的USEAFTEREXCEPTON过程(如果有)。2相对1-0模块的环境部
2.1输入-输出节
与输入输出节有关的信息见顺序1-0模块的2.1。2.2 FILE-CONTROL 段
与FILE-CONTROL段与有关的信息见顺序I-)模块的2.2。2.3文卷控制款
2.3.1功能
文卷控制款说明一个相对文卷的有关物理属性。2.3.2一般格式
SELECT OPTIONAL]文卷名1
【实现名1]
ASSIGNTO
[字值1
RESERVE整数1
GE/T 4092. 5-92
[ORGANIZATION IS RELATIVE
SEQUENTIAL[RELATIVEKEYIS数据名1(RANDOM
ACCESS MODE IS
DYNAMIC
[FIL.E STATUS IS 数据名 2].
2.3.3语法规则
RELATIVEKEYIS数据名1
(1)SELECT子句必须在文卷控制款中首先指出。接在SELECT了句后的了句可按任意次序出现。
(2)数据部描述的每一个文卷必须且只能在FILE-CONTROL段命名一次,在SELECT子句中指出的每个文卷必须在同一程序的数据部中有一个文卷描述款。(3)字值 1 必须是一个非数值字值且不能是象征常量。实现名 1 允许的内容的意义及规则及字值 1的值由实现者来定义。
2.3.4--般规则
(1)如果文卷名1引用的文卷连接衍是外部文卷连按衍(见程序间通信模块4.5EXTERNAL子句),则运行单位中引用此文卷连接符的所有文卷控制款必须:对OPTIONAL短语有同样说明。
对ASSIGN子句中实现名1或字值1有致的说明。实现者对实现名1或字值1指定一致见对RESERVE子句中的整数1有同样的值。同样的组织。
同样的存取方式。
在RELATIVEKEY短语中的数据名1有同样的外部数据项。(2)外部媒体上的数据项使用本源字符集。(3)OPTIONAL短语仅于以输入,I-O或扩展方式打开的文卷。对目标程序每一次运行并不都要用到的文卷来说,该短语是需要的。(4)ASSIGN子句指明由文卷名1引用的文卷到由实现名1或字值1引用的存储媒体之间的联系。
(5)相对1-O模块的RESERVE子句与顺序I-O模块的RESERVE了例是样的。因此对RE-SERVE子句的规定见顺序1-O模块中的2.9。(6)相对I-O模块的FILESTATUS了句)与顺序I-O模块的FILESTATUS子句是一样的。固此,有关FILESTATUS子句有关内容见顺序IO模块:相对文卷的FILESTATUS子数据项的内容见1. 3.41-0状态。
(7)ACCESSMODE子句和ORGANIZATIONISRELATIVE了例在下面列出。2.4ACCESSMODE子句
2.4. 1 功能
ACCESS MODE子句规定了义卷中记录的存取序。2.4.2一般格式
ACCESS MODE IS
2.4.3语法规则
SEQUENTIAL[RELATIVE KEY IS 数据名 I](RAND)M
DYNAMIC
RELATIVEKEYIS数据名1
(1)数据名1可以受限。
GB/T4092.5--92
(2)数据名1必须引用一个其描述不含PICTURE符号\P\的无正负号整数数据项。(3)数据名1不能在有关文卷名的记录描述款中定义。(4)ACCESSMODEIS RANDOM子旬不能指定为在SORT或MERGE语句中的USING或GIVING短语中指明的文卷名。
(5)如果相对文卷出个START语句引用,则必须为个文卷规定ACCESSMODE子句内的RELATIVE KEY 短语。
2.4.4一般规则
(1)如果未指明ACCESS MODE子句,则假定为顺序存取。(2)如果存取方式是顺序的,则文卷中的记录接照文卷组织指定的顺序存取。对相对文卷,这种顺序是文卷中已存在记录的相对记录号的升序。(3)如果存取方式是随机的,相对文卷的相对键数据项的值指明了要存取的记录。(4)如果存取方式是动态的,则文卷中的记录可以顺序和/或随机地存最。(5)所有在相对文卷中存储的记录由相对记录号唯一地标识。给出一个记录的相对记录号规定了在文卷中记录的逻辑次序位置。第一个逻辑记录有相对记录号1,后继的逻辑记录有相对记录号2、3、4、(6)由数据名1规定的数据项用于在用户和海量存储控制系统(MSCS)之间对相对记录号进行通信。
(7)与执行输入输出语句有关的相对键数据项是在ACCFSSMODE句中由数据名1引用的数据项。
(8)如果有关的文卷连接符是外部文卷连接符,则与文卷连接符有关的运行单位中的每·个文卷控制款必须规定相同的存取方式。另外,数据名1必须引用一个外部数据项且在每一种情况下与每个有关的文卷控制款中的 RELATIVE KEY 短语必须引用相同的外部数据项。2.5(RGANIZATIONISRELATIVE句2.5.1功能bzxz.net
ORGANIZATIONISRELATIVE子句规定文卷的遵辑结构是相对组织。2.5.2·般格式
[ORGANIZATIONIS]RELATIVE
2.5.3一般规则
(1)ORGANIZATIONISRFLATIVE子旬指明文卷的逻辑结构是相对组织。文卷组织在文签创建时建立并H以后不能改变。
(2)相对组织是一种水久性的逻辑文卷结构,其每个记录由一个大于零的整数值唯一地标识,这个整数值规定文卷中记录的逻辑次序位置。2.6I-O-CONTROL段
2.6.1功能
I-O-CONTROI.段指出建立重运行的点和不同文卷所共享的存储区域。在标准COBOL的这一版本中视I-O-CONTROL段中的RERUN子句是过时成分,因为在标准COBOL的以后的修改版中要把它删掉。
2.6.2一般格式
I-O-CONTROL.
RECORDS>F 文卷名 2
整数1
文卷名1iEVERY整数2
RERUN ON
实现名1]
CLOCK-UNITS
(条件名1
GB/T 4092. 5—92
[SAME[RFCORDAREAFOR文卷名3
{文卷名4}]]
2.6.3--般规则
(1)相对I-O模块的RERUN子匀是顺序I-O模块的RERUN了句的子巢。因此,RERUN子句的规定见顺序I-O模块的2.12RERUN子句。(2)相对1-O模块的SAME子句同顺序I-O模块的SAME子句是一样的。因此,有关SAME子句的规定见顺序I-0的2.13SAME子句。3相对I-0模块的数据部
3.1文卷节
文卷节的有关信息见顺序I-0模块的3.1文卷节。3.2文卷描述款
:3.21功能
文差描述款提供关于一个相对文卷的物理结构,标识和记录名的信息,3.2. 2 一般格式
FD 文卷名 1
BLOCKCONTAINS[整数1 TO]整数CONTAINS 整数 3 CHARACTERS
(RECORDS
CHARACTERS
[RECORD
ISVARYINGINSIZEFROM整数4LTO整数5JCHARACTERS[DEPENDINGON数据名1]
CONTAINS 整数 6 TO 整数 7 CHARACTERSLABEI
RECORDIS
(STANDARD
RECORDS AREOMITTED
VALUEOF实现名1
RECORDIS
数据名2
字值1
1数据名31
RECORDS ARE
3.2.3语法规则
(1)层指示符FD标识文描述款的并始,而且它必须位于文卷名1的前面。(2)接在文卷名1之后的各个子句出现的次序是任意的。(3)在文卷描述款的后面必须接有一个或多个记录描述款。3.2.4一般规则
(1)文卷描述款使文卷名1与-个文卷连接符联系起米。(2)相对I-O模块的BLOCKCONTAINS子句与顺序I-O模块的BIOCKCONTAINS子句相同。因此有关BLOCKCONTAINS子句见顺序I-O模块。(3)相对I-O模块的DATARECORDS子句与顺序I-O模块的DATAREOCRTDS子句相同。因此有关DATARECORDS子句的规定见顺序I-O模块。在标准COBOL的这一版本中视DATARECORDS子句是过时成分,因为在标准COBOL的以后的修改版中要把它删掉。(4)相对I-O模块的I.ABELRECOR1)S子句-与顺序I-)模块的LABELRECORDS子句相同,因此,有关LABELRECORDS子句的规定见顺序I-O模块。在标准COBOI.的这一版本中视LABELRECORDS子句是过时成分,因为在标准COBOL的以后的修改版中要把它删掉。GB/T 4092.5—92
(5)相对1-O模块的RECORD子句与顺序[-)模块的RECORD子句是相同的。因此,有关RECORD子句的规定见顺序I-O模块。(6)相对I-O模块的VALUEOF子句与顺序LO模块的VALUEOF子句是相同的。因此有关VALUEOF子句的规定见顺序I-O模块。在标准COBOL的这一版本中视VALUEOF子句是过时成分。因为在标准()HOL的以后的修改版中要把它删掉。4相对I-0模块的过程部
·般描述
当C)B()I.源程序中出现相对1O模块的USE语句时,过程部包含中述过程。以下指出的是当LSE语何出现时过程部的一般格式。PROCEDURE DIVISION.
DECLARATIVES.
{节名SECTION.
LSE 语句
[段名[句子
FNID DECLARATIVES.
1节名 SECTION
[段名.
[句子
4. 2 CLOSE语付
4.2.1功能
CL()SE语句终址带有任选锁的文卷的处理。4.2.2一般格式
CLOSE文卷名1
4.2.3语法舰则
[WITH LOCK] -
(I)CLOSE语句中引用的文卷无须全都具有相同的组织或存取方式。-般规则
(1)只能对处丁打开方式的文卷执行CIOSE语句。(2)相对文卷属于非顺序的单或多卷或单位的文卷类型。对丁这类文卷,每个CLOSE语句执行的结果可综述成表1,
CIOSE语句格式
CLOSE WITH I.OCK
文卷类型:非顺序的单或多一卷或单位A
下而给出表中符号的定义,这是根据文卷是输入文卷、输出文卷还是输入·输出文卷,面分别给出相应的定义,否则一个定义可适用于输入,输出和输人-输出文卷。A:关闭文卷
输入文卷和输入输出文卷(顺序存取方式):若义卷定位下它的未端且指出该文卷有标号记录,则根据实现者的标准标号约定处理标号。当指明标号记录H又未出现或当未指明标记录而又出现时,则CLOSE语句的行为是无定义的。系统执行由GB/T4092.5-92
实现者指定的关闭操作。若文卷定位在它的末端,:指明文卷标号记录,则不进行标号处理,而执行由实现者指明的其它关闭操作。若文卷未定位在它的末端,则执行由实现者指明的关闭操作,但是不进行结束标号处理。
输入文卷和输入-输出文(随机载动态存取方式):输出文卷(随机、动态或顺序存取方式);若指明文卷有标号记录,则根据实现者的标准标号约定处理标号。当指明有标号记录但未出现或未指明标号记录但又出现时,CLOSE语句的行为是无定义的。系统执行由实现者指明的关闭操作。若未指明文卷标号记录,则不进行标号处理,但执行由实现者指明的其它关闭操作,B、安卷锁
给文卷加锁,以保证在运行单位执行期间不能再次打开这个文卷。(3)执行CI0SE语句引起与文卷名1有关的1-O状态值的更新(见1.3.4I-O状态)。(4)如果不出现任选输入文卷,则不进行文卷末端处理且文卷位罩指示符也不改变,(5)CI.OSE语句成功执行以后,和文卷名1相关联的记录区不再可用。CLOSE语句执行不成功,则使得记录区的可用性未定义。(6)跟着执行成功的CLOSE语付,文卷离开打开方式,H文卷不再与文卷连接符有关。(7)如果在一个CLOSE语句中指定的文卷名1多于一个,则执行这种CI.OSE语句的结果,就如同对CL()SE语句中的每个文卷名1以同样的次序分开写出的一串CLOSE语句一样。4.3DEL.FTE语句
4.3.1功能
DELETE语句从一个海量存储文卷中逻辑地抹去一个记录。4.3.2一般格式
DELETE文卷名IRECORD
[INVALIDKEY命令语句]
[NOTINVALIDKEY命令语句2]
[END-DELETE]
4.3.3语法规则
(1)对于引用顺序存取方式的文卷的DELETE语句,不能指明INVALIDKEY短语和NOTIVVALID KEY 短语
(2)对于引用非顺序存取方式的且未指明可用USEAFTERSTANDARDEXCEPTION过程的文卷的DEI.ETE语句,则必须指明INVALIDKEY短语。4.3.4-般规则
(1)在执行该语句时,文卷名1引用的文卷必须是以1-O方式打开的海量存储文卷(见4.4CIPEN语句。
(2)对顺序存取方式的文卷而言·在DELETE语句执行之前,对该文卷名1执行的最木个输入输出句必须是已经成功执行的READ语句。MSCS逻辑地从该文卷中删去由READ语句存取的记录。
(3)对随机存取方式或动态存取方式的相对文而言,MSCS从该文卷中逻辑地删去与文卷名1相关联的RELATIVEKHY数据项的内容所标识的那个记录。芳文卷中不含有由该键所指明的记录。就产生一个INVAI.IDKFY条件<见1.3.5无效键条件)。(4)成功地执行过DELETE语句之后,指定的记录已经逻辑地从文卷中删去,且不再能被存取。(5)DELEIE语句的执行不影响与文卷名1相关联的记录区的内容,也不影响与文卷名1有关的出在RECORD子句的DEPENDINGON短语中规定的数据名引用的数据项的内容。GB/T 4092.5—92
(6)当前文卷位置指示符不受DELETE语句仅行的影响。(7)DELETE语句的执行使得与文卷名1相关联的I-O状态数据项(如果有的话)的值被更新(见1. 3. 4I-0 状态)。
(8)在成功或不成执行DELETL操作以后,转移控制根据DELETE语句中任选的INVALIDKEY和NOTINVAILIKEY短语是否出现来决定(见1.3.5无效键条件)。(9)FND-DELETE短语限定了DELETE语句的作用域(见预备知识6.6.4.3谱句的作用域)。4.4OPEN语句
4.4.1功能
OPEN语句初启文的处理。
4.4.2一般格式
INPUT(文卷名1}
OUTPUT(文卷名 2}·*
OPENO(文卷名]
EXTEND文卷名4
4.4.3语法规则
[(1)EXTENI)短语只能用于顺序存取方式的文卷。(2)所有在OPEV语句中引用的文卷无须全都具有相同的组织或存取方式。4.4.4般规则
(1)(OPEN语句的成功执行确定文卷的可用性并使得文卷处于打开方式。成功地执行OPEN语句通过文卷连接符把文卷与文券名联系起来。如果一个文卷物理上存在且由输入输出控制系统识别,则此文卷是可用的。表2显示了打开可用与不可用文卷的结果。
表 2一个文卷的可用性
文卷可用
输人(任选文卷)
I-(任选文举)
FXTEND
EXTEND(任选文卷)
正打开
正常打开
正带打开
正常打开
正带打开:
文卷不含记采
正常打开
正带打并
文卷不可用
打开不成功
正带打开;第一次读产生末端条件或无效键条件打开不成功
打开使文卷产生
打开使文卷产生
打开不戒功
打开使产生文卷
(2)OPEN语句的成功执行使得相关联的记录区对程序是可用的。如果与文卷名有关的文卷连接符是一个外部文卷连接符,对运行单位只有一个与文卷连接符相关的记录区。(3)当一个文卷不处于打开方式时,任何显式或隐式地引用该文卷的语句都不能执行,除非带有USING或GIVING短语的MERGE评句、OPEN语句或带有USING或GIVING短语的SORT语句。(4)在任何可允许的输人-输出语句执行之前,OPEN语句必须先成功地执行。在表3中,交叉点上的“×”指出按所在行给出存取方式使用的语句可以在列的顶部给出的文卷打开方式下使用。文卷存取方式
GB/T 4092.5-~92
表3允许的语句
REWRITE
DELETE
REWRITE
DELETE
REWRITE
DELETE
打开方式
摘人-输出
5)一个文卷可以在同个运行单位中用INPUT、OUTPUT、EXTEND和I-O短语来打开。在对文卷初次执行OPEN语句后,对同一个文卷每当要执行下-个OPEV语句,必须对该文卷先执行一个不带LOCK短语的CLOSE语。
(6)OPEN语句的执行并不获取或者释放第一个数据记录。(7)若对文卷指明有标号记录,则文卷开始的标号处理如下:当指出INPUT短语时,OPEN语句的执行将引起根据实现者规定的输入标号核对的约定核对标号。
当指出OUTPUT短语时,OPEN语的执行将引起根据实现者规定的输入标号的书写约定来写标号。
当指出有标号记录而又未出现或未指出标号记录却又出现了标号时,OPEN的行为是未定义的。(8)如果在执行OPEN语句期间,发生文卷属性冲突条件,则OPEN语句执行不成功(见1.3.7文卷属性冲突条件)。
(9)如果用INPUT短语打开的文卷是一个不存在的任选文卷,则OPEN语句设罩文卷位置指示符以指明任选输入文卷不存在。(10)对丁用INPUT或I-O短语打开的文羞OPEN语句把文卷位置指示符暨为1。GB/T4092.5—92
(11)当规定EXTEND短语时,OPEN语句将该文卷定位于紧接在那个文卷最后:个逻辑记录之后。相对文卷的最后一个逻辑记录是现存的具有最大相对记录号的记录。(12)当规定了EXTEVD短语并且IABELRECORDS子句指出标号记录存在时,OPEN语句的执行包括下列步骤:
仅在单卷或单单位文卷的情说下处理开始的文卷标号。b.
处理最后一个存在的卷或单位上的开始的卷或单位标号,如同文差是用INPIJT短语打开样。
处理现存的结束文卷标号,如同用INPUT短语打开文卷一样。然后删除这些标号。然后进行处理如同文卷已用OUTPUT短语打开一样。d.
(13)带有I-O短语的OPEN语句必须引用一个支持输入输出操作的文卷,这些操作应对以1-O方式打开的相对文卷是允许的。带有I-O短语的OPE语句执行后,将引用的文卷置于允许输入和输出操作的打开方式之下。
(14)当指出I-O短语,且LABELRECORDS子句指出有标号记录.则OPFN语句的执行包含下列各步:
司。根据实现者规定的输入输出标号核对的约定核对标号。b.根据实现者规定的输入输出标号的书写约定写新标号。(15)对一个不可用的任选文卷,带有EXTEND或I-O短语的OPEN语句的成功执行建立了该文卷。这种建立了发生如同依序执行下列语句:OPEN OUTPUT 文卷名。
CLOSE文卷名。
上述语句执行后跟着执行源程序中指明的OPEN语句。带有OUTPUT短语的OPEN语句成功执行之后,便建立一个文卷。但此时该文卷中还不含数据记录。
(16)执行OPEN语句引起与文卷名相关的I-O状态值的更新(见1.3.4I-O状态)。(17)如果在一个OPEN语句中指定的文卷名多于一个,期执行此OPEN语句的结果就如同对OPEN语句中每一个文卷名以同样顺序分开写出的一串OPEN语句一样。(18)一个文卷的最大和最小记录长度在文卷创建时建立且以后不能改变。4.5READ语句
4.5.1功能
对顺序存取方式而言,READ语句使文卷中的下一逻辑记录成为可用。对随机存取方式而言,READ语句使得海量存储文卷中的一个指定记录成为可用。4.5.2般格式
格式1:
READ文卷名1[NEXT]RECORD[INT)标识符1][ATEND命令语句1][NOTAT END命令语句2][END·READ]格式2
READ文卷名1RECORD[INTO标识符1][INVALIDKEY命令语句3]「NOTINVALIDKEY命令语句4]][END-READ]4.5.3语法规则
(1)与标识符1相关联的存储区和与文卷名1相关联的记录区不能是同-个存储区。(2)格式1的EAD语句须用于所有顺序存取方式的义卷。(3)当顺序方式检索记录时,对处于动态存』的文卷必须指出NEXT短语。
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。