📜  COBOL-文件访问模式

📅  最后修改于: 2020-11-22 16:54:28             🧑  作者: Mango


到目前为止,已经讨论了文件组织方案。对于每种文件组织方案,可以使用不同的访问模式。以下是文件访问模式的类型-

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

本模块中的语法以及它们各自的术语仅指它们在程序中的用法。使用这些语法的完整程序将在下一章中讨论。

顺序访问

当访问模式为顺序访问时,记录检索的方法将根据所选文件的组织而改变。

  • 对于顺序文件,将按照插入记录的顺序访问记录。

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

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

句法

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

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时,记录检索的方法将根据所选文件的组织而改变。

  • 对于索引文件,将根据放置在键字段中的值(主键或备用键)访问记录。可以有一个或多个备用索引。

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

句法

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

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