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
随机访问
当访问模式为随机(RANMOM)时,记录检索方法根据所选文件组织而变化。
- 对于索引文件,记录可以通过主键或备用键的键字段中的值来访问。可以有一个或多个备用索引。
- 对于相对文件,记录通过记录相对键进行检索。
语法
以下是随机访问模式的语法:
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短语读取文件。NEXT和READ的功能将在下一章中进行讨论。
语法
以下是动态访问模式的语法:
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