COBOL - Modo de acceso a archivos

Hasta ahora, se han discutido esquemas de organización de archivos. Para cada esquema de organización de archivos, se pueden utilizar diferentes modos de acceso. A continuación se muestran los tipos de modos de acceso a archivos:

  • Acceso secuencial
  • Acceso aleatorio
  • Acceso dinámico

Las sintaxis en este módulo, mencionadas junto con sus respectivos términos, solo se refieren a su uso en el programa. Los programas completos que utilizan estas sintaxis se discutirán en el próximo capítulo.

Acceso secuencial

Cuando el modo de acceso es secuencial, el método de recuperación de registros cambia según la organización de archivos seleccionada.

  • por sequential files, se accede a los registros en el mismo orden en que se insertaron.

  • por indexed files, el parámetro utilizado para obtener los registros son los valores de clave de registro.

  • por relative files, las claves de registro relativas se utilizan para recuperar los registros.

Sintaxis

A continuación se muestra la sintaxis del modo de acceso secuencial:

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

Acceso aleatorio

Cuando el modo de acceso es RANDOM, el método de recuperación de registros cambia según la organización de archivos seleccionada.

  • por indexed files, se accede a los registros de acuerdo con el valor colocado en un campo de clave que puede ser clave principal o alternativa. Puede haber uno o más índices alternativos.

  • por relative files , los registros se recuperan mediante claves de registro relativas.

Sintaxis

A continuación se muestra la sintaxis del modo de acceso aleatorio:

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

Acceso dinámico

El acceso dinámico admite acceso secuencial y aleatorio en el mismo programa. Con el acceso dinámico, se utiliza una definición de archivo para realizar procesos tanto secuenciales como aleatorios, como acceder a algunos registros en orden secuencial y a otros registros por sus claves.

Con archivos relativos e indexados, el modo de acceso dinámico le permite alternar entre el modo de acceso secuencial y el modo de acceso aleatorio mientras lee un archivo usando la frase NEXT en la instrucción READ. Las funcionalidades NEXT y READ se discutirán en el próximo capítulo.

Sintaxis

A continuación se muestra la sintaxis del modo de acceso dinámico:

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