COBOL-文件访问模式

本文概述

  • 顺序访问
  • 随机访问
  • 动态访问
每个文件组织(在上一节中, 我们讨论了许多文件组织)都有不同的访问方式。
访问方式用于根据程序要求定义文件的访问方式。简而言之, 可以说, 访问模式定义了如何从文件读取和写入数据。
主要有三种访问方式:
  • 顺序访问
  • 随机访问
  • 动态访问
顺序访问顾名思义, 可以顺序读取文件中的记录以进行顺序访问, 即从头开始一个接一个地读取。
检索记录的方法根据所选文件的组织而异。
【COBOL-文件访问模式】在顺序文件中, 以与插入记录相同的方式检索记录。
对于索引文件, 从文件位置指示符的当前位置开始, 按所选密钥文件的顺序访问记录。
对于相对文件, 按相对记录号的顺序访问记录。
语法如下:
ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT file-name ASSIGN TO dd-nameORGANIZATION IS SEQUENTIALACCESS MODE IS SEQUENTIALENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT file-name ASSIGN TO dd-nameORGANIZATION IS INDEXEDACCESS MODE IS SEQUENTIALRECORD KEY IS rec-key1ALTERNATE RECORD KEY IS rec-key2ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT file-name ASSIGN TO dd-nameORGANIZATION IS RELATIVEACCESS MODE IS SEQUENTIALRELATIVE KEY IS rec-key1

顺序访问模式的缺点
当文件具有较少的记录时, 顺序访问模式非常有效, 但是当文件具有大量的记录时, 从文件中读取特定的记录将花费太多时间。
随机访问在随机访问模式下, 我们可以随机访问记录, 即直接通过提供密钥即可。
这种访问方式通常仅用于索引文件和相对文件。
对于索引文件, 将根据你在键字段中放置的值来检索记录。价值可以是主要的, 替代的或相对的。可以有一个或多个备用索引。
根据你在相对键中输入的值来检索相对文件的记录。
语法如下:
ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT file-name ASSIGN TO dd-nameORGANIZATION IS INDEXEDACCESS MODE IS RANDOMRECORD KEY IS rec-key1ALTERNATE RECORD KEY IS rec-key2ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT file-name ASSIGN TO dd-nameORGANIZATION IS RELATIVEACCESS MODE IS RANDOMRELATIVE KEY IS rec-key1

动态访问在同一程序中, 动态访问允许顺序访问和随机访问。在动态访问模式下, 我们可以对两种类型的处理(即随机和顺序处理)使用文件描述, 例如借助键检索某些记录, 并按顺序检索某些记录。
对于相对文件和索引文件, 动态访问模式使你可以通过使用READ语句上的NEXT短语在读取文件时在随机访问模式和顺序访问模式之间切换。
语法如下:
ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT file-name ASSIGN TO dd-nameORGANIZATION IS SEQUENTIALACCESS MODE IS DYNAMICRECORD KEY IS rec-key1ALTERNATE RECORD KEY IS rec-key2ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT file-name ASSIGN TO dd-nameORGANIZATION IS RELATIVEACCESS MODE IS DYNAMICRELATIVE KEY IS rec-key1

    推荐阅读