COBOL - DATA DIVISION - file description entries - RECORDING MODE clause



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - DATA DIVISION - file description entries - RECORDING MODE clause
Enterprise COBOL for z/OS, V4.2, Language Reference

A cláusula RECORDING MODE especifica o formato dos registros físicos em um arquivo QSAM.
A cláusula é ignorada para um arquivo VSAM.

Os valores permitidos para RECORDING MODE são:

Recording mode F (fixed)
Todos os registros em um arquivo têm o mesmo comprimento e cada um está totalmente contido em um bloco.
Os blocos podem conter mais de um registro e geralmente há um número fixo de registros para cada bloco.
Nesse modo, não há campos de comprimento de registro ou descritor de bloco.

Recording mode V (variable)
Os registros podem ter comprimento fixo ou comprimento variável e cada um deve estar totalmente contido em um bloco.
Os blocos podem conter mais de um registro.
Cada registro de dados inclui um campo de tamanho de registro e cada bloco inclui um campo de descritor de blocos.
Esses campos não são descritos na divisão de dados.
Eles têm 4 bytes de comprimento e são automaticamente provisionados.
Esses campos não estão disponíveis para você.

Recording mode U (fixed or variable)
Os registros podem ter comprimento fixo ou comprimento variável.
No entanto, há apenas um registro para cada bloco. Não há campos de comprimento de registro ou descritor de bloco.

Você não pode usar o RECORDING MODE U se estiver usando a cláusula BLOCK CONTAINS.

Recording mode S (spanned)
Os registros podem ter comprimento fixo ou comprimento variável e podem ser maiores que um bloco.
Se um registro for maior que o espaço restante em um bloco, um segmento do registro será gravado para preencher o bloco.
O restante do registro é armazenado no próximo bloco (ou blocos, se necessário).
Somente registros completos são disponibilizados para você.
Cada segmento de um registro em um bloco, mesmo que seja o registro inteiro, inclui um campo de descritor de segmento e cada bloco inclui um campo de descritor de bloco.
Esses campos não são descritos na divisão de dados; provisão é feita automaticamente para eles.
Esses campos não estão disponíveis para você.

Quando o modo de gravação S é usado, a cláusula BLOCK CONTAINS CHARACTERS deve ser usada.
O modo de gravação S não é permitido para arquivos ASCII.

Se a cláusula RECORDING MODE não for especificada para um arquivo QSAM, o compilador Enterprise COBOL determinará o modo de gravação da seguinte maneira:

F
O compilador determina que o modo de gravação seja F se o maior registro de nível 01 associado ao arquivo não for maior que o tamanho do bloco especificado na cláusula BLOCK CONTAINS e você siga um destes procedimentos:
  • Use a cláusula inteira RECORD CONTAINS.
    (Para obter mais informações, consulte o Guia do Enterprise COBOL Compiler and Runtime Migration.)
  • Omita a cláusula RECORD e verifique se todos os registros de nível 01 associados ao arquivo têm o mesmo tamanho e nenhum contém uma cláusula OCCURS DEPENDING ON.
V
O compilador determina que o modo de gravação seja V se o maior registro de nível 01 associado ao arquivo não for maior que o tamanho do bloco especificado na cláusula BLOCK CONTAINS e você seguir um destes procedimentos:
  • Use a cláusula RECORD IS VARYING.
  • Omita a cláusula RECORD e verifique se todos os registros de nível 01 associados ao arquivo não têm o mesmo tamanho ou se alguns contêm uma cláusula OCCURS DEPENDING ON.
  • Use a cláusula RECORD CONTAINS número integer-1 para número integer-2, com número integer-1 o comprimento mínimo e número integer-2 o comprimento máximo dos registros de nível 01 associados ao arquivo.
    Os dois números inteiros devem ser diferentes, com valores correspondentes ao comprimento mínimo e máximo de registros de comprimento diferentes ou registros com uma cláusula OCCURS DEPENDING ON.
S
O compilador determina que o modo de gravação seja S se o tamanho máximo do bloco for menor que o maior tamanho do registro.

U
O modo de gravação U nunca é obtido por padrão.
A cláusula RECORDING MODE U deve ser especificada explicitamente para obter o modo de gravação U.


© Copyright IBM Corp.