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