COBOL - tryb dostępu do plików

Do tej pory omawiano schematy organizacji plików. Dla każdego schematu organizacji plików można użyć różnych trybów dostępu. Poniżej przedstawiono typy trybów dostępu do plików -

  • Dostęp sekwencyjny
  • Losowy dostęp
  • Dostęp dynamiczny

Składnie w tym module, wymienione wraz z odpowiednimi terminami, odnoszą się tylko do ich użycia w programie. Pełne programy korzystające z tych składni zostaną omówione w następnym rozdziale.

Dostęp sekwencyjny

Gdy tryb dostępu jest sekwencyjny, metoda odtwarzania rekordów zmienia się zgodnie z wybraną organizacją plików.

  • Dla sequential files, dostęp do rekordów odbywa się w tej samej kolejności, w jakiej zostały wstawione.

  • Dla indexed filesparametr używany do pobierania rekordów to wartości klucza rekordu.

  • Dla relative files, względne klucze rekordów są używane do pobierania rekordów.

Składnia

Poniżej znajduje się składnia trybu dostępu sekwencyjnego -

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

Losowy dostęp

Gdy tryb dostępu jest RANDOM, metoda wyszukiwania rekordów zmienia się zgodnie z wybraną organizacją plików.

  • Dla indexed files, rekordy są dostępne zgodnie z wartością umieszczoną w polu klucza, które może być kluczem podstawowym lub alternatywnym. Może istnieć jeden lub więcej alternatywnych indeksów.

  • Dla relative files , rekordy są pobierane za pomocą względnych kluczy rekordów.

Składnia

Poniżej znajduje się składnia trybu dostępu swobodnego -

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

Dostęp dynamiczny

Dostęp dynamiczny obsługuje dostęp sekwencyjny i losowy w tym samym programie. W przypadku dostępu dynamicznego jedna definicja pliku jest używana do wykonywania zarówno sekwencyjnego, jak i losowego przetwarzania, takiego jak dostęp do niektórych rekordów w kolejności sekwencyjnej, a do innych rekordów za pomocą ich kluczy.

W przypadku plików względnych i indeksowanych tryb dostępu dynamicznego umożliwia przełączanie między trybem dostępu sekwencyjnego i trybem dostępu swobodnego podczas odczytu pliku przy użyciu frazy NEXT w instrukcji READ. Funkcjonalności NEXT i READ zostaną omówione w następnym rozdziale.

Składnia

Poniżej znajduje się składnia trybu dostępu dynamicznego -

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