COBOL - Modo de acesso a arquivos

Até agora, os esquemas de organização de arquivos foram discutidos. Para cada esquema de organização de arquivo, diferentes modos de acesso podem ser usados. A seguir estão os tipos de modos de acesso a arquivos -

  • Acesso Sequencial
  • Acesso aleatório
  • Acesso Dinâmico

As sintaxes neste módulo, mencionadas junto com seus respectivos termos, referem-se apenas ao seu uso no programa. Os programas completos que usam essas sintaxes serão discutidos no próximo capítulo.

Acesso Sequencial

Quando o modo de acesso é sequencial, o método de recuperação de registro muda de acordo com a organização de arquivo selecionada.

  • Para sequential files, os registros são acessados ​​na mesma ordem em que foram inseridos.

  • Para indexed files, o parâmetro usado para buscar os registros são os valores da chave do registro.

  • Para relative files, as chaves de registro relativas são usadas para recuperar os registros.

Sintaxe

A seguir está a sintaxe do modo de acesso sequencial -

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

Acesso aleatório

Quando o modo de acesso é RANDOM, o método de recuperação de registro muda de acordo com a organização de arquivo selecionada.

  • Para indexed files, os registros são acessados ​​de acordo com o valor colocado em um campo-chave que pode ser uma chave primária ou alternativa. Pode haver um ou mais índices alternativos.

  • Para relative files , os registros são recuperados por meio de chaves de registro relativas.

Sintaxe

A seguir está a sintaxe do modo de acesso aleatório -

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

Acesso Dinâmico

O acesso dinâmico suporta acesso sequencial e aleatório no mesmo programa. Com o acesso dinâmico, uma definição de arquivo é usada para executar o processamento sequencial e aleatório, como acessar alguns registros em ordem sequencial e outros registros por suas chaves.

Com arquivos relativos e indexados, o modo de acesso dinâmico permite alternar entre o modo de acesso sequencial e o modo de acesso aleatório enquanto lê um arquivo usando a frase NEXT na instrução READ. As funcionalidades NEXT e READ serão discutidas no próximo capítulo.

Sintaxe

A seguir está a sintaxe do modo de acesso 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