COBOL 文件访问模式

2018-10-17 16:05 更新

截至目前,已经对文件组织方案进行了讨论。对于每一个文件组织方案,可以使用不同的访问模式。以下是文件访问模式的类型:

  • 顺序访问
  • 随机访问
  • 动态访问

本章节中提到的语法及其各自的术语,仅涉及它们在程序中的用法。使用这些语法的完整程序将在下一章讨论。

顺序访问

当访问模式是按顺序的,记录检索的方法根据所选的文件组织而变化。

  • 对于顺序文件 ,被插入的记录仍按相同的顺序进行访问。

  • 对于索引文件 ,用于获取记录的参数是记录的键值。

  • 对于相对文件 ,记录相对键用于检索记录。

语法

以下是顺序访问模式的语法:

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name
   ORGANIZATION IS SEQUENTIAL
   ACCESS MODE IS SEQUENTIAL
	
	
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name
   ORGANIZATION IS INDEXED
   ACCESS MODE IS SEQUENTIAL
   RECORD KEY IS rec-key1
   ALTERNATE RECORD KEY IS rec-key2

		
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name
   ORGANIZATION IS RELATIVE
   ACCESS MODE IS SEQUENTIAL
   RELATIVE KEY IS rec-key1

随机访问

当访问模式为随机(RANMOM)时,记录检索方法根据所选文件组织而变化。

  • 对于索引文件,记录可以通过主键或备用键的键字段中的值来访问。可以有一个或多个备用索引。

  • 对于相对文件,记录通过记录相对键进行检索。

语法

以下是随机访问模式的语法:

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name
   ORGANIZATION IS INDEXED
   ACCESS MODE IS RANDOM
   RECORD KEY IS rec-key1
   ALTERNATE RECORD KEY IS rec-key2

		
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name
   ORGANIZATION IS RELATIVE
   ACCESS MODE IS RANDOM
   RELATIVE KEY IS rec-key1

动态访问

动态访问支持在同一程序中的顺序和随机访问。通过动态访问,一个文件定义可用于执行顺序和随机进程,例如按顺序访问一些记录和通过键访问其他记录。

使用相对和索引文件,动态访问模式允许你在顺序访问模式和随机访问模式之间来回切换,同时使用READ语句上的NEXT短语读取文件。NEXT和READ的功能将在下一章中进行讨论。

语法

以下是动态访问模式的语法:

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name
   ORGANIZATION IS SEQUENTIAL
   ACCESS MODE IS DYNAMIC
   RECORD KEY IS rec-key1
   ALTERNATE RECORD KEY IS rec-key2

		
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name
   ORGANIZATION IS RELATIVE
   ACCESS MODE IS DYNAMIC
   RELATIVE KEY IS rec-key1
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号