COBOL - Input-Output section - File organization



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

COBOL - Input-Output section - File organization
Enterprise COBOL for z/OS, V4.2, Language Reference

Você estabelece a organização dos dados ao criar um arquivo.
Após a criação do arquivo, você pode expandir o arquivo, mas não pode alterar a organização.

Sequential organization - Organização sequencial

A ordem física na qual os registros são colocados no arquivo determina a sequência de registros.
Os relacionamentos entre os registros no arquivo não são alterados, exceto que o arquivo pode ser estendido.
Os registros podem ter comprimento fixo ou comprimento variável; não há chaves.

Cada registro no arquivo, exceto o primeiro, possui um registro predecessor exclusivo; e cada registro, exceto o último, possui um registro sucessor exclusivo.

Indexed organization - Organização indexada

Cada registro no arquivo possui uma ou mais chaves incorporadas (chamadas de itens de dados principais); cada chave está associada a um índice.
Um índice fornece um caminho lógico para os registros de dados de acordo com o conteúdo dos itens de dados da chave do registro incorporado associado.
Os arquivos indexados devem ser arquivos de armazenamento de acesso direto. Os registros podem ter comprimento fixo ou comprimento variável.

Cada registro em um arquivo indexado deve ter um item de dados de chave primária incorporado.
Quando os registros são inseridos, atualizados ou excluídos, eles são identificados apenas pelos valores de suas chaves principais.
Portanto, o valor em cada item de dados da chave primária deve ser exclusivo e não deve ser alterado quando o registro for atualizado.
Você diz a COBOL o nome do item de dados da chave primária na cláusula RECORD KEY do parágrafo de controle de arquivo.

Além disso, cada registro em um arquivo indexado pode conter um ou mais itens de dados chave alternativos incorporados.
Cada chave alternativa fornece outro meio de identificar qual registro recuperar.
Você diz ao COBOL o nome de qualquer item de dados-chave alternativo na cláusula ALTERNATE RECORD KEY do parágrafo de controle de arquivo.

A chave usada para qualquer solicitação de entrada e saída específica é conhecida como chave de referência.

Relative organization - Organização relativa

Pense no arquivo como uma sequência de áreas de registro, cada uma das quais contém um único registro.
Cada área de registro é identificada por um número de registro relativo; o método de acesso armazena e recupera um registro com base em seu número de registro relativo. Por exemplo, a primeira área de registro é endereçada pelo número de registro relativo 1 e a décima é endereçada pelo número de registro relativo 10.
A sequência física na qual os registros foram colocados no arquivo não tem influência na área de registro em que estão armazenados, e, portanto, nenhum efeito no número de registro relativo de cada registro.
Arquivos relativos devem ser arquivos de acesso direto.
Os registros podem ter comprimento fixo ou comprimento variável.

Line-sequential organization - Organização sequencial de linhas

Em um arquivo seqüencial de linha, cada registro contém uma sequência de caracteres que termina com um delimitador de registro.
O delimitador não é contado no comprimento do registro.

Quando um registro é gravado, todos os espaços em branco à direita são removidos antes da adição do delimitador de registro.
Os caracteres na área de registro, do primeiro caractere até o delimitador de registro incluído, inclusive, constituem um registro e são gravados no arquivo.

Quando um registro é lido, os caracteres são lidos um de cada vez na área de registro até:

  • O primeiro delimitador de registro é encontrado.
    O delimitador de registro é descartado e o restante do registro é preenchido com espaços.
  • Toda a área de registro é preenchida com caracteres.
    Se o primeiro caractere não lido for o delimitador de registro, ele será descartado.
    Caso contrário, o primeiro caractere não lido se tornará o primeiro caractere lido pela próxima instrução READ.
  • Fim do arquivo encontrado.
    O restante da área de registro é preenchido com espaços.

Os registros gravados em arquivos seqüenciais de linha devem consistir em itens de dados descritos como USAGE DISPLAY ou DISPLAY-1 ou uma combinação dos itens DISPLAY e DISPLAY-1.
Um item de dados decimal em zona deve ser não assinado ou, se assinado, deve ser declarado com a frase SEPARATE CHARACTER.

Um arquivo seqüencial de linha deve conter apenas caracteres imprimíveis e os seguintes caracteres de controle:

  • Alarm (X'2F')
  • Backspace (X'16')
  • Form feed (X'0C')
  • New-line (X'15')
  • Carriage-return (X'0D')
  • Horizontal tab (X'05')
  • Vertical tab (X'0B')
  • DBCS shift-out (X'0E')
  • DBCS shift-in (X'0F')

Caracteres de nova linha são processados ??como delimitadores de registro.
Outros caracteres de controle são tratados pelo COBOL como parte dos dados para os registros no arquivo.

O seguinte não é suportado para arquivos sequenciais de linha:

  • APPLY WRITE-ONLY clause
  • CODE-SET clause
  • DATA RECORDS clause
  • LABEL RECORDS clause
  • LINAGE clause
  • I-O phrase of the OPEN statement
  • PADDING CHARACTER clause
  • RECORD CONTAINS 0 clause
  • RECORD CONTAINS clause format 2 (por exemplo: RECORD CONTAINS 100 a 200 CHARACTERS)
  • RECORD DELIMITER clause
  • RECORDING MODE clause
  • RERUN clause
  • RESERVE clause
  • REVERSED phrase of the OPEN statement
  • REWRITE statement
  • VALUE OF clause of file description entry
  • WRITE ... AFTER ADVANCING mnemonic-name
  • WRITE ... AT END-OF-PAGE
  • WRITE ... BEFORE ADVANCING


© Copyright IBM Corp.