COBOL - Modalità di accesso ai file

Fino ad ora, sono stati discussi schemi di organizzazione dei file. Per ogni schema di organizzazione dei file, è possibile utilizzare diverse modalità di accesso. Di seguito sono riportati i tipi di modalità di accesso ai file:

  • Accesso sequenziale
  • Accesso casuale
  • Accesso dinamico

Le sintassi in questo modulo, menzionate insieme ai rispettivi termini, si riferiscono solo al loro utilizzo nel programma. I programmi completi che utilizzano queste sintassi saranno discussi nel prossimo capitolo.

Accesso sequenziale

Quando la modalità di accesso è sequenziale, il metodo di recupero dei record cambia in base all'organizzazione del file selezionata.

  • Per sequential files, ai record si accede nello stesso ordine in cui sono stati inseriti.

  • Per indexed files, il parametro utilizzato per recuperare i record sono i valori della chiave del record.

  • Per relative files, le chiavi record relative vengono utilizzate per recuperare i record.

Sintassi

Di seguito è riportata la sintassi della modalità di accesso sequenziale:

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

Accesso casuale

Quando la modalità di accesso è RANDOM, il metodo di recupero dei record cambia in base all'organizzazione del file selezionata.

  • Per indexed files, si accede ai record in base al valore inserito in un campo chiave che può essere chiave primaria o alternativa. Possono essere presenti uno o più indici alternativi.

  • Per relative files , i record vengono recuperati tramite le relative chiavi di record.

Sintassi

Di seguito è riportata la sintassi della modalità di accesso casuale:

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

Accesso dinamico

L'accesso dinamico supporta l'accesso sequenziale e casuale nello stesso programma. Con l'accesso dinamico, viene utilizzata una definizione di file per eseguire l'elaborazione sia sequenziale che casuale come l'accesso ad alcuni record in ordine sequenziale e ad altri record tramite le loro chiavi.

Con i file relativi e indicizzati, la modalità di accesso dinamico consente di passare avanti e indietro tra la modalità di accesso sequenziale e la modalità di accesso casuale durante la lettura di un file utilizzando la frase NEXT nell'istruzione READ. Le funzionalità NEXT e READ saranno discusse nel prossimo capitolo.

Sintassi

Di seguito è riportata la sintassi della modalità di accesso dinamico:

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