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