COBOL - 文件访问模式

  • 简述

    到目前为止,已经讨论了文件组织方案。对于每种文件组织方案,可以使用不同的访问模式。以下是文件访问模式的类型 -
    • 顺序访问
    • 随机访问
    • 动态访问
    本模块中的语法及其各自的术语仅指它们在程序中的用法。使用这些语法的完整程序将在下一章中讨论。
  • 顺序访问

    当访问模式是顺序时,记录检索的方法会根据选择的文件组织而改变。
    • 为了sequential files, 记录的访问顺序与插入的顺序相同。
    • 为了indexed files,用于获取记录的参数是记录键值。
    • 为了relative files,相对记录键用于检索记录。

    句法

    以下是顺序访问模式的语法 -
    
    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
    
  • 随机访问

    当访问模式为 RANDOM 时,记录检索的方法会根据选择的文件组织而改变。
    • 为了indexed files,根据放置在可以是主键或备用键的键字段中的值访问记录。可以有一个或多个备用索引。
    • 为了relative files, 记录是通过相对记录键检索的。

    句法

    以下是随机访问模式的语法 -
    
    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