GB/T 4092.6-1992
标准分类号
标准ICS号:信息技术、办公机械设备>>35.060信息技术用语言
中标分类号:电子元器件与信息技术>>信息处理技术>>L74程序语言
相关单位信息
首发日期:1983-12-26
复审日期:2004-10-14
起草单位:南京大学
归口单位:全国信息技术标准化技术委员会
发布部门:国家技术监督局
主管部门:国家标准化管理委员会
标准简介
GB/T 4092.6-1992 程序设计语言COBOL 索引I-O模块 GB/T4092.6-1992 标准下载解压密码:www.bzxz.net
标准内容
1.1功能
中华人民共和国国家标准
程序设计语言COBOL
索引I-0模块
Prngramming languageCOBOL
Indexed I-0 module
GB/T 4092.6—92
代替 GIB 4092. 6—83
索引I-0模块提供以随机方式或顺序方式存取海量存储文卷中记录的功能,索引文卷中的每个记录是出记录里一个或多个键的值来唯一标识的。1.2级别特征
1级索引I-O对文卷控制款、文卷描述款及I-O CONTROL段中的各款提供局部功能。在过程部中,1缴索引I-O对CLOSE、OPEN、READ,REWRITE,USE和WRITE语句提供局部功能,而对DELETE语句提供广完整功能。
2级索引 I-O 对文卷控制,文卷描述款及I-O CONTROL段中的各款提供了完整功能。在过程部中,2级索引I-O 对 CLOSE.DELETE,OPEN、READ,REWRITE,START,USE 和 WRITE 语句提供了宪整功能。
1.3语言概念
1.3.1组织
用索引方法组织的文卷是海量存储文卷,通过给出指定的记录键值可以存取文卷中任一记录,文卷的记录中定义的每个键数据项均与一个索引相联系。每个这种索引代表每个记录中相应键数据项的一组值。因此,每个素引是能够提供存取文卷中任一记录的机构,每个索引文卷有一个主索引,它代表文卷中每个记录的土记录键。每个记录被摇人到文卷中、或被改变、或从文卷中被删除完全依赖于主记录键的值。文卷中每个记录的士记录键必须是唯一的.而且在修改记录时不能被变。.主记录键在该文卷的文卷控制款的RECORDKEY子句中说明。次记录键提供检索文卷记录的次路径。这种键在文卷控制款的ALTERNATERECORDKEY了句中被命名。每个记录中特定的次记录键的值可以不唯一。当这些值可能不唯一时,必须在ALTER-NATERECORDKEY子句中使用DUPLICATES短语指明。1.3-2存取方式
对索引组织,顺序存取的序是根据该文卷的对比序列的引用键值的递升次序。在文卷处理期间,与文卷相关联的征何键可以用作为引用键。[在真有量复键引用值的一组记录重,记录的检案饮序是记录被写到该组记录里的次序。START语句可用来在索引文卷里为一系列后继顺序检索建立开始点。
当用随机方式存取文卷时,输入-输出语句以程序员指定的次序存取记录。对于索引组织,程序员通国家技术监督局1992-08-04批准1993-05-01实施
GB/ 4092.6—92
过把记录键的某一个值放入记录键或次记录键数据项来规定所要的记录。对动态存敢方,程序员使用输入输出语句的适当格式,可以任意地由顺序存取方式改变成随机存取方式。
1.3.3:文卷位置指示符
文卷位指示符是在这个标准中为简化在某个输入输出操作期间,从给定的文卷中存取下一个记录的确切说明而使用的一个概念实体。置文卷位量指示符的值仅受 CLOSE、OPEN,READ和START语句的影响。文卷位置指示符的概念对用输出或扩充方式打开的文卷没有意义。1. 3. 4 I-0 状态
I-O 状态是--个两字符概念实体,它的值标志在CLOSE、DELEIE,OPEN,READ、REWRITE、START或WRITE语句执行期间输入输出操作的状态,并且标志与那个输入输出语句相关的任一命令语句执行之前或任一可应用的USEAFTERSTANDARDEXCEPTION过程的执行以前输人输出操作的状态。过在相应文卷的文卷控制款中使用FILESTATUS子句,使得I-O状态值对COBOL程序成为可用。
I-O状态也用于决定一个可用的 USE AFTER STANDARD EXCEPTION过程是否要执行。如果出现的条件不是标题为“成功的结束”之下包含的那些条件,则这样的过程可以依据别处指出的规则执行。若出现的条件是在标题为成功的结束”之下包含的那些条件,则不执行这样的过程(见4.8USE句,)
某些[-0状态值指出关键错误条件。它们是,以数字3或4和任何由实现者作为关键定义的以数字9开始的错误条件。若对应输入输出操作的I-0状态值指出这样一个错误条件,则由实现者确定在执行任何可用的 USE AFTER STANDARD EXCEPTION过程之后所要采取的动作,或者若没有可用的USEAFTERSTANDARDEXCEPTION过程时,则实现者确定输入输出控制系统错误标准处理以后采取什么动作。
I-O状态根据输入输出操作完成的情况表示下列条件之-~(1)成功的结束。输入输出语句执行成功。(2)到末端。由手末端条件引起顺序READ语句执行不成功。(3)无效键。由于无效键条件引起输入输出语句执行不成功。(4)永久性错误。由于一个错误引起输入输出语句执行不成功,这个错误使文卷的处理不能继续进行。执行指定的例外过程,除非引用实现者定义的技术来改正永久性错误条件,否则永久性错误条件对该文的所有以后的输入输出操作具有影响。(5)逻辑错误。由于在文卷上执行了不正确的输入输出操作顺序,或于与用户定义的限制相冲突而引起的輪入輪出语句执行不成功。(6)实现者定义。由于实现者指定的条件引起输入输出语句执行不成功。下面给出值表,列出对应于在素引文卷上执行了输入输出操作且出现前面命名的条件时放入I-0状态中的值。若多于一个值可应用,那么由实现者确定将哪个可应用的值放到I-O状态中。(1)成功的结束
,1I-0状态=00。输入输出语句成功地执行,对有关输入输出操作没有进一步的信息可用。b.I-0状态一02。输入翰出语句成功地执行,但重复键被查出。13对READ语句,当前引用键的键值等十当前引用键里下个记录中相同键的值,2)对REWRITE或WRITE语句,刚写的记录至少有一个允许重复的次记录键建立了个重复链值。
cI-0状态=04。READ语句成功地执行,但止被处理的记录的长度与相应文券的定长文卷属性不一致。
GB/T 4092.6--92
d.I-O状态-05。OPEN语句成功地执行,但被引用的任选文卷在OPEN语句执行时并不存在如打并方式是1O或扩充方式,则该文卷已被建立。(2)不成功结束的未端条件
我:I-O状态=10。试图执行顺序的READ语句,但由于下列原因文卷中不存在下一个逻辑记录:1)已经达到文卷的末端,
2)第一次对尚不存在的任选输入文卷试图执行顺序READ语句。(3)不成功结束的无效键条件
:T-()状态=21。对顺序存取的索引文卷存在一个顺序错误。对于那个文卷在成功执行READ语句和执行下一个REWRITE语句之间程序改变了主记录键的值,或违反了相继记录键的值是逆升顺序这个要求(见4.9WRIIE语句)。b.I-O状态=22。企图写或重写索引文卷的记录将导致出现单复主记录链,或没有DUPLICATE短语时出现重复次记录键。
c、I-0 状态一23。由于下述情况而出现这个条件:1)企图随机存取文卷中不存在的记录。2)企图对尚不存在的一个任选输入文卷执行START或随机READ语句。d.I-O状态=24,试图写到索引文卷外部确定的边界之外。确定这些边界的方式由实现者指明。(4)不成功结束的永久性错误条件a.10状态=30。出现永久性错误并且没有和输入输出有关的进步可用信息。b。I-O状态一35。因试图对尚不存在的非任选文卷执行具有 INPUT、I-O、或EXTEND短语的OPEN语句,而引起永久性错误发生。C.I-O状态一37。因试图对一个并不支撑该OPEN语句中指定的打开方式的文卷执行OPEN语句,引起永久性错误发生。可能的违反是:1)说明了EXTEND或OUTPUT短语,但文卷不支持写操作。2)说明了1-0短语,但文卷不支持对索引文卷在以I-0方式打开时所允许的输入和输出操作。3)说明了INFUT短语,但文卷不支持读操作。d,I-()状态38。由于试图对前面已经带锁关闭的文卷执行OPEN语句.而引起永久性错误的发生。
些,I-O 状态一39。由于在定长文誉屏性与程序对那个文卷指明的属性之间检测到矛盾,OPEN.语创执行不成功,
(5)不成功结束的逻辑错误条件a:I-O状态=41。试阁对已处在打开方式的文卷执行OPEN语句。b.I-O状态=42。试图对不处于打开方式的文卷执行CL(>SE语句。c。I-O状态=43。在顺序存取方式中,在 DELETE 或 REWRITE语句执行之前,对文卷执行的最后一个输入输出语句不是一个成助地执行的READ语句。d.I-0状态一44。由于下述因素引起边界违反:1)试图写或重写比相关文卷名的RECORDISVARYING子句所允许的最长记录长或比最短记录短的记录。
2)在1级中,试图对一个索引文卷写或重写一个与被替代的记录长度不同的记录。e.I-O状态=46。试图对以输入或I-O方式打开的文卷执行顺序READ语句,而且由于下述原因未建立有效的下个记录:
[1)先前的START语句执行不成功]GB/T 4092. 6--92
2)先前的READ语执行不成功,但未引起末端条件。3)先前的READ语句引起了未末端条件。I-O状态一47。试图对不是以输人或I-O方式打开的文卷执行READ或START语句。I-O状态=48。试图对不是以i-O),输出,或扩展方式打开的文卷执行WRITE语句。b。i-O状态=49。试图对不是以I-O方式打开的文卷执行DELETE或REWRITE语句。(6)实现者定义的不成功结束条件,1-0状态9x。存在由实现者定义的条件。这个条件不能与1-0状态值00到49的任何个条件重复。x的值由实现者定义。
1.3.5无效键条件
DELETEREAD、REWRITE、START或WRITE语句执行后,可能出现无效键条件.当无效键条件出观时,识刻出该条件的输人输出语句的执行是不成功的,而且文卷不受影响(见4.3DELETE语句;4.5READ语句;4.6REWRITE语句:4.7START语句和4.9WRITE语句)在输入输出语句中指明的输入输出操作执行以后,若出现无效键条件,则发生下列次序的动作:(1)与该语句相关联的文联接符的I-0状态被置为标志无效键条件的值(见1.3.4I-0状态)。(2)若输人输出语句中指明了INVALIDKEY短语,则不执行与该文卷连接符相关联的USEAF-TEREXCEPTION过程,而控制转向INVALIDKEY短语中说明的命令语句。然后按照那个命令语句中指明的每个语句的规则继续执行。若执行显式引起控制转移的过程分支或条件语句,则按照那个语句的相应规则转移否则,在INVALIDKEY短语中说明的命令语句行完成后,控制转向输入输出语句的结束处,并且忽略NOT INVALIDKEY短语(若已指明的话)。(3)若在输人输出语句中未指明INVALIDKEY短语,则USEAFTEREXCEPTION过程必须与该文卷连接符相关联,而且执行该过程,然后按照USE语句的规则转移控制。忽略NOTINVALIDKEY短语(若已指明的话)见4.8USE语句)。由输入输出语句指明的输入-输出操作执行以后,若无效键条件不出现,那么INVALIDKEY短语被想略(若已指明的话)。与该语句关联的文卷连接符的I-()状态被修改,而且执行下列动作:(1)若出现非无效键条件的例外条件,则在与该文卷连接符相关联的任何USEAFTEREXCEPTION过程执行以后,按照 USE语句的规则转移控制(见 4.8 USE语句)。(2)若无例外条件出现,则控制转向输入输出语句结束处,或若指明NOTINVALIDKEY短语时就转向由其说明的命令语句。在后种情况,按照那个命令语句中说明的相应每个语句的规则继续执行。若执行引起显式控制转移的过程分支或条件语句,则按照那个语句相应规则转移,否则,在NOTINVALIDKEY短语中说明的命令语句执行完后,控制转到输入输出语句结束处。1.3.6末端条件
执行READ句后,末端条件可能发生(见4.5READ语句)。1.3.7.文卷属性冲突条件
执行OPEN、REWRITE或WRITE语句,可能产生文属性冲突条件。当文卷属性冲突条件出现时,识别出该条件的输入输出语句的执行是不成功的,而且文卷不受影响(见4.4OPEN语句;4.6REWRITE语句和 4.9WRITE语句)。当识别出文卷属性冲突条件时,发生下列次序的动作:(1)在与该文卷名相关联的 1. 状态中放一个指示文卷属性冲突条件的值(见 1. 3. 4 -0 状态)。(2)执行与该文卷名相关联的USEAFTEREXCEPTION过程(若有的话)。2索引I-0模块的环境部
2.1输人输出节
有关输人输出节的信息见顺序1-0模块的2.1中的说明。2.2 FILE-CONTROL 段
GB/T4092.6—92
有关FILE-CONTROL段的信息见顺序I-O模块的2.2中的说明。:2.3文卷挖制款
2.3.1功能
文卷控制款说明索引文卷的有关物理属性。2.3.2一般格式
SELFCT[OPTIONAL】文卷名1
ASSIGN TO
【实现名1
字值1
RESERVE数1
LAREASJ
SEQUENTIAL
[ORGANIZATION IS] INDEXEI? ACCESS MODE IS RANDOMRECORI)KFYIS数据名1
DYNAMIC
[ALTERNATERECORDKEYIS数据名2[WITHDUPLICATESJ].[FILESTATUSIS数据名3]
2.3.3语法规则
(1)作文卷控制款中必须首先指出SELECT子句。跟在SELECT子句后的那些子句可以按任何次序出现。
(2)在数据部中描述的每个文卷必领作为FILECONTROL段中的文卷名被指明一次,且只能一饮。在SELECT子句中指出的每个文卷名必须在同一程序的数据部中有-个文卷描述款。(3)字值1必须是一个非数值字值,而且不能是象征常量。关于实现名1所允许的内容以及字值1的值,其含义和规则由实现者定义。2.3.4一般规则
(1)若由文卷名1引用的文卷连接符是一个外部文差连接符(见GB4092·12中4.5EXTERNAL子句),则运行单位中引用这文卷连接符的所有文卷控制款必须,对OPTIONAL短讲有同样说明
对ASSIGN子句中实现名1或字值1有一致性的说明。实现者对实现名1或字值1指定一致h
规则。
对RESERVE了句中整数1有同样的值,同样的组织。
同样的存取方式。
相关记录中具有同·相对位置的数据名1有相同数据描述款。g-数据名2有相同数据描述款,数据名2在相关的记录中具有同一相对位置,相同数量的次记录键和相同的DUPLICATES短语。
(2)外部媒体上的数据项使用本源字符集。(3)对索引文卷,假定对比序列与本源学符集村关联。这是用于顺序处理文卷而引用的给定键值的疗列。
(4)OPT1ONAL短语仅应用于以输入、I-O、或扩展方式打开的文卷。对于目标程序每一次运行时并不都要旧到的文卷来说,该短语是需要的。(5)ASSIGN子句指出由文卷名1所引用的文卷与由实现名1或字值1所引用的存储媒体之间的联系。
GB/T 4092.6—92
(6)案引I-O模块的RESERVE字列与顺序I-O模块的RESERVE子句相同。因此有关RE-SERVE子句的说明见顾序I-O模块的2.9RESERVE子句(7)索引I-O模块的FILE STATUS了句与顺序I-O模块的FILESTATUS子句相。因此有关FILESTATUS子句的说明见顺序I-O模块2.5FILESTATUS子句。与索引文卷的FILESTATUS子句相关联的数据项的内容见1. 3. 4I-0状态,(B)ACCESSMODE子句、ALTERNATERECORDKEY子句ORGANIZATIONIS INDEXED 句和RECORD KEY 子句见下文。2.4 ACCESS MODE 子句
2.4.1功能
ACCESS MODE 子句指出在文卷中存取记录的次序。2.4.2一般格式
SEQUETIAL
RANDOM
ACCESSMODEIS
DYNAMIC
2.4.3语法规则
(1)对SORT或MERGE语句的USING或GIVING短语中说明的文卷名不能指定ACCESSMODEISRANDOM子句。
2.4.4一般规则
(1)如果未指出 ACCESS MODE 子句,则假定是顺序存取。(2)若存方式是顺序的,文卷中的记录按文卷组织决定的顺序存取。对索引文卷,这个顺序根据文卷的对比序列在给定引用键内的记录键值的递升次序。(3)如果存取方式是随机的,对索引文卷,记录键数据项的值表明要存取的记录。(4)当存取方式是动态的,则文卷中的记录可以顺序地和/或随机地存取。(5)若相关联的文卷连接符是外部文卷连接符,则与那个文卷连接符相关联的运行单位中每个文卷控制款必须指定相同的存取方式。2.5ALTERNATERECORDKEY子句免费标准下载网bzxz
2.5.1功能
AI.TFRNATERECORDKEY子句指明一个次记录键,这个次记录键提供了在索引文卷中记录的次存取路径。
2.5.2一般格式
ALTERNATERECORDKEYIS数据名1[WITHDUPLICATES]2.5.3语法规则
(1)数据名1可以受限。
(2)数据名1必须在与文卷名相关联的记录描述款中定义成字符类型的数据项,ALTERNATERECORDKEY子句从属于这个文卷名。(3)数据名1不能引用包含可变出现数据项的组项。(4)数据名1不能引用这样的一个数据项,它的最左边字符位置和该文卷相关联的主记录键或任-其它次记录键的最左边的字符位置相对应。(5)若紫引文卷包含变长记录,则每个次记录键必须包含在记录开始的x个字符位置中,x等于对该文卷指定的最小记录长度(见GB/T4092.4中3.8RECORD子句)。2.5.4一般规则
GB/T 4092.6--92
(1)ALTERNATERECORDKEY子句指出与这个子句相关联的文卷的次记录键。(2)数据名1的数据描述以及其在记录里的相对位置必须与创建该文卷时所用的一样。该文卷次记录键数目也必须与创建该文卷时所用的-一样。(3)DUPLICATES短语指出相关联的次记录键的值可以在文卷中任何记录里重复。如果没有指出DUPLICATES短语,则相关联的次记录键的值必不能在文卷中任何记录中重复。(4)如果文卷有多于一个记录描述款,则数据名1仅需在这些记录描述款之·中描述。在任一记录描述款中由数据名1引用的相同的字符位置隐含地被引用为那个文卷的所有其它记录描述款相对应的键。
(5)若相关联的文卷连接衍是外部文卷连接符,那么在与那文卷连接符相关联的运行单位里,每个文卷控制款必须指出对数据名1有相同的数据描述款,相关记录里有同样的相对位置,同样数目的次记录键,和同样的DUPLICATES短语。2.6ORGANIZATION IS INDEXED 子2. 6. 1 功能
ORGANIZATIONISINDEXED子句指明索引组织为文卷的遇辑结构。2.6.2般格式
[ORGANIZATION IS J INDEXED
2.6.3—般规则
(1)ORGAVIZATIONISINDEXED子句指明索引组织为文卷的逻辑结构。文卷组织在文卷创建时建立,而且以后不能改变。
(2)素引组织是一种永久的逻辑文卷结构,用记录中个或多个键值来标识该文卷中每个记录。2.7 RECORD KEY 了-句
2.7.1功能
RECORD KEY子句指出主记录键,该半记录键提供了在索引文卷中记录的存取路径,2.7.2一般格式
RECORDKEYIS数据名1
2.7.3语法规则
(1)数据名1可以受限。
(2)数据名1必须引用与该文卷名相关联的记录描述款中的字符型数据项,RECORDKEY子句从属于该文卷名。
(3)数据名1不能引用包含可变出现数据项的组项。(4)若索引文卷包含变长记录,则主记录键必须被包含在记录开始的x个学符位置里,x等于对文卷指定的最小记录长度(见GB/T4092.1中3-8RECORD了句)。2.7.4般规则
(1)RECORDKEY子句指出与该了句相关联的文卷的主记录键。主记录键的值在该文卷的诸记录中必须是唯一的。
(2)数据名1的数据描述和它在记录中的相对位置一样,必须与建立文卷时便用的相同。(3)若文卷有多于一个记录描述款,数据名1仅需在这些记录描述款之一中描述。在任-记录描述款中由数据名1引用的相同的字符位置隐含地被引用为那个文卷的所有其它记录描述款对应的键。(4)若相关联的文举连接符是外部文卷连接符,那么在与那个文卷连接符相关联的运行单位里,所有文卷描述款必须对在相关记录里具有同样相对位置的数据名1指出相同的数据描述款。2.8I-)CONTROL段
2.8.1功能
GB/T 4092.6—92
I-OCONTROL.段指出了建立的重运行点和不同文誉共享的存储区。在标准COBOL 的这一版本中视T-O-CONTROL段中的RERUN了句是过时成分,因为在标准COBOL的以后的修改版中要把它删掉。
2. 8-2 一般格式
I-O-CONTROL.
RERUN ON
【文卷名]
实现名1
【整数1RECORDSOF文卷名2】
整数 2 CIOCK-UNITS
(条件名1
[SAME [RFCOR] AREA FOR 文卷名 3 (文卷名 4} _。}2.8.3般规则
(1)有关索引I-O 模块的 RERUN 子句是顺序I-O 模块的 RERUN子句的子集。因此RERUN 子句的说明见顺序I-0)模块的2.12 RERUN子句。(2)有关索引 T-) 模块的 SAME 了句与顺序 I-O 模块的 SAME 子句相同。因此有关 SAME 子句的说明见顺序J-O模块的2.13SAME子句。3索引I-0模块的数据部
3.1文卷节
有关文卷节的信息见顺序I-0模块的3. 1 文卷节。3.2文卷描述款
3-2-1功能
文卷描述款提供关于一个索引文卷的物理结构,标识和记录名的信息。3.2.2一般格式
FD 文卷名 1
[RECORDS
BL(CKCONTATIS【整数1TO]整数2ICHARACTERS
(CONTAINS 数 3 CHARACTERS
RECORD
IS VARYING IN SIZE [LFROM 整数 4TTO 整数 5] CIIARACTERSIDEPENDINGON数据名1]CONTAINS整数6TO整数7CHARACTERSRECORD IS
IRECORDSARE!
VALUEOF实现名1IS
RECOR) IS
(STANDARD
OMITTED
数据名2
(字值1
(数据名3}
RECORDS AREJ
3.2.3语法规则
(1)层指示符 FD 标识文卷描述款的开始,它必须位于文卷名1的前面。(2)跟在文卷名上后面的那些了句可以以任意欢序出现,(3)文描述款之后必须跟有一个或多个记录描述款。3.2.4般规则
(1)文卷描述款把文卷名1与文卷连接符联系起来。GR/T 4092. 6—92
(2)索引I-模块的BLOCKCONTAINS子句与顺序I-O模块的BLOCKCONTAINS子句相同。因此有关于BLOCKCONTAINS子句的说明见顺序I-O模块的3.3BLOCKCONTAINS子句。(3)索引I-O 模块的 TATA RFCORDS 子句与顺序 I-O 模块的DATA RECORDS 了句相同。因此,有关 DATA RECORDS 了右]的说明见顺 I-O 模块 3. 5 DATA RECORDS 了]。在标准 COBOL的这版本中视 T)ATA RECORDS 子句是过时成分,因为在标准 COBOI. 的以后的修改版中要把它掉。
(4)索引1-O模块的LABELRECOREDS子句与顺序I-O模块的LABELRECORLS子句相同。因此有ILABEL.RECORDS子句的说明见顺序IO模块中 3.6LABEILRECORDS子句。在标准COBOL 的这一版本中视 LABEL RECORDS 子句是过时成分,因为在标准 COBOL的以后的修改版中要把它删掉,
(5)索引I-O模块的RECORD了句与顺序1-O模块的RECORD了句相同。因此有关RECORD子何的说明见顺序I-O模块中3.8RECORD子句。(6)索引IO模块的VALUEOF子句与顺序I-O模块的VAI.UEOF子句相同。因此有关VALUEOF子句的说明顺序I-O模块中3.9VALUEOF子间。在标准COBOL的这一版本中视VALUEOF子句是过时成分,因为在标准COBOL 的以后的修改版中要把它删掉。4索引1-0模块的过程部
4.1一般描述
当在COBO1源程序中存在索引I-O模块的USE语句时,过程部包含中述过程。下面给出当USE语句存在时过程部的般格式。
PROCEDUREDIVISION.
DECLARATIVES.
(节名 SECTIUN.
USE 语句
【段名、
[句了」
ENDDECLARATIVES
I节名SETION.
[段名.
[]子] -----
4.2 CLOSE语句
4.2.1功能
CLOSE语创终止带有任选锁的文的处理。4.2.2一般格式
CLOSE义卷名1【WITHLOCK]
4.2.3语法规则
(1)CL()SE语句中引用的文卷不需要都有相同的组织或存取方式。4.2.4-般规则
(1)CLOSE语句)只能对处于打斤方式的文卷执行,(2)索引文卷属于非顺序的单或多-卷或单位的文卷类型,对丁这类文卷的各种CIOSE语句的执行结果概括成下表1。
CI.CSSE语句格式
CLOSE WITH LOCK
CB/T 4092.6—92
文卷类型;非顺序的单或多-卷或单位A
下面给出表中符号的定义。此处,根据文卷是输入,输出或输人输山文卷,而分别给出了相应的定义;否划,一种定义可适于输入,输出以及输入输出。A,关闭文卷
输入文卷和输入输出文卷(顺序存取方式)如果文卷定位在它的末端并且对该文卷指出有标号记录,则按照实现者的标准标号约定处理标号。当指出有标号记录但又未出现,或当未指出标号记录而又出现时刻CI(JSF语句的行为是无定义的,但执行由实现者指定的关闭操作。如果文卷定位在末端而对该文卷没有指明标号记录,则不进行标号处理,但执行由实现者指出的其它关闭操作。如果文卷不定位在它的末端,则执行出实现者指出的关闭操作,但不进行结束标号处理。
输入文卷和愉入输出文卷(随机或动态的存取方式);输出文卷(随机、动态或顺序存取方式):如果对文卷指出了标号记录,则按照实现若的标准标号约定处理这些标号.当指出了标号记录而未出现,或末指出标号记录而又出现时,CLUSE讲句的行为是无定义的,但执行出实现者指出的关闭操作。如果对该义卷未指出标号记录,则不进行标号处理,但执行由实现者指出的其它关闭操作B.文卷锁
该文卷被锁而且在这个运行单位的这次执行期间不能再打开。(3)执行CLOSE语句将改变与文卷名1相关联的I-O状态值(见1.3.4I-0状态),(4)若任选的输入文卷不存在,则对文卷不执行文卷米处理,且不改变文卷位置指示符。(5)在CLOSE语句执行成功之后,与文卷名1相关联的记录区就不再可用。如 CLOSE语句执行不成,则记录区的可用性是米定义的。(6)在CLOSE语句执行成功之后,从打开方式中除么这个文卷.而且该文卷不再与该文卷连接符相关联。
(7)若在 CLOSE 语们中指定的文卷名 1 多于~个,则执行这种 CL(OSE 语句的结果就如同对CLOSE语句中每个文卷名1以同样的顺序分开写出的一串CLOSE语句--样。4.3 DELETE 语句
4.3.1功能
DEL.ETE 语句从海量存储文卷中逻辑地除去一个记录。4.3.2一般格式
DELETE 文卷名 1 RECORD
[INVALIDKEY命令语句]
[NOT INVALID KEY 命令语句2][END-DELETE ]
4.3.3语法规则
(1)对于引用顺序存取方式文卷的DELETE语句.不能指出INVALII)KEY和NOTINVALIDKFY短语。
(2)对于引用非顺序存取方式且未指出可应用USEAFTERSTANDARI)EXCEPTION过程的文GB/T 4092.6—92
卷的IEI.FTE语句,则必须指明INVALII)KEY短语。4.3.4一般规则
(1)在执行这个语句时,由文卷名 1引用的文卷必须是海量存储文卷且必须已用1-0 方式打开(4.4OPEN语句)。
(2)对顺序存取方式的文卷而言,在DELETE语句执行之前,对文卷名1最近执行的输入输出语句必须是成功执行的READ语句。海量存储控制系统(MSCS)逻辑地从该文卷中除去由READ语句存取的记录。
(3)对随机或动态存取方式的文卷而言,MSCS从该文卷中逻辑地除去由与文卷名1相关联的主记录键数据项的内容标识的那个记录。如果该文卷不包含由该键指出的记录,则就产生一个INVALIDKFY条件(见1.3.5无效链条件)。(4)成功地执行DELETE语句之后,指定的记录已被逻辑地从文卷中删去,并且不能再被存取。(5)DEL.ETE语句的执行,不影响记录区的内容或与文卷名1相关联的RECORD子句内DEPENDINGON短语中规定的数据名所引用数据项的内容。(G)文卷位置指示符不受DELETE语句执行的影响。(7)DELETE语句的执行使得与文卷名1相关联的I-0状态值被更新(见1.3.4)-C)状态)(8)在DELETE操作的成功或不成功的执行之后,控制转移依赖于DELETE语句中是否存乍IN-VALIDKEY和NOTINVALIDKEY短语(见1.3.5无效键条件)。(9)END-DELETE短语限定DELETE语句的作用域(见GB/T4092.1中6.5.4.3语们作用域)。4.4OPEN语句
4.4.1功能
OPEN语句对文卷的处理进行初始化。4.4.2一般格式
INPUT(文卷名1}.
OUTPUT(文卷名2}
OPENO文卷名3
EXTEND(文卷名4)
4.4.3语法规则
(1)EXTEND短语只能用于序存取方式的文卷。(2)所有在(PEN语钧中引用的文卷不要求有相同的组织或存取方式。4.4.4一般规则
(1)OPEN语句的成功执行确定文卷的可用性,使.文卷处在打开方式,并民通过文卷连接符把该文卷与文卷名联系起米。
若文卷物理地存在H被输入输出控制系统识别,则该文卷是可用的。表2给出打开可用文卷和不可用文卷的结果。
输人(任选文卷)
10(任选文券)
EXTEND
EXTEND(任进文卷)
文卷可用
GB/T 4092.6—92
表 2文卷的可用性
文卷不可用
正常打开
正常打开
正常打开
正常打开
止常打开,文卷不包含记录
正常打开
正常打开
打开不成功
正常打开;第一次读产生末条件或无效键条件
打并不成功
打开使文誉产生
打开使文卷产生
打开不成功
打开使文卷产生
(2)OPEN语句的成功执行,使得相关记录区可用于程序。若与文卷名相关联的文卷连接符是外部文卷连接符,则该运行单位仅有一个记录区与这文卷连接符相关。(3)当文卷未打开时,不能显式或隐式地执行引用该文卷的语句,带有USING或GIVING短语的MERGE语创、OFEN语句,或带有USING或GIVING短语的SORT语句除外。(4)在执行任何允许的输入输出语句之前,必须首先成功地执行OPEN语句。在表3中,在交叉点上×指出可允许的语句。这些讲句按所在行左边指出的存取方式使用,且可以和索引文卷组织以及在列的顶部给出的打并方式起使用。表8可允许语句
文卷存取方武
REWRITE
DELETE
REWRITE
DELETE
REWRITE
DELETE
打开方式
摘入-输出
(5)个文卷可以在同一个运行单位中用INPUT、OUTPUT、EXTEND和I-O短语打开。一个文
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。