本文概述
每个文件组织(在上一节中, 我们讨论了许多文件组织)都有不同的访问方式。
访问方式用于根据程序要求定义文件的访问方式。简而言之, 可以说, 访问模式定义了如何从文件读取和写入数据。
主要有三种访问方式:
- 顺序访问
- 随机访问
- 动态访问
顺序访问
顾名思义, 可以顺序读取文件中的记录以进行顺序访问, 即从头开始一个接一个地读取。
检索记录的方法根据所选文件的组织而异。
在顺序文件中, 以与插入记录相同的方式检索记录。
对于索引文件, 从文件位置指示符的当前位置开始, 按所选密钥文件的顺序访问记录。
对于相对文件, 按相对记录号的顺序访问记录。
语法如下:
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
顺序访问模式的缺点
当文件具有较少的记录时, 顺序访问模式非常有效, 但是当文件具有大量的记录时, 从文件中读取特定的记录将花费太多时间。
随机访问
在随机访问模式下, 我们可以随机访问记录, 即直接通过提供密钥即可。
这种访问方式通常仅用于索引文件和相对文件。
对于索引文件, 将根据你在键字段中放置的值来检索记录。价值可以是主要的, 替代的或相对的。可以有一个或多个备用索引。
根据你在相对键中输入的值来检索相对文件的记录。
语法如下:
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短语在读取文件时在随机访问模式和顺序访问模式之间切换。
语法如下:
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
评论前必须登录!
注册