COBOL - Comando START - www.cadcobol.com.br



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

Permitir o posicionamento de registros em um arquivo para posterior recuperação
  • Comando que permite posicionar o ponteiro em uma determinada chave para que o registro referente a essa chave possa ser lido posteriormente com um comando READ.
    Não pode ser utilizado em arquivos de organização SEQUENTIAL ou LINE SEQUENTIAL.

  • A instrução START permite que o programa comece sequencialmente o processamento de um arquivo indexado, mas em um local diferente do primeiro ou do próximo registro físico do arquivo.
    Suponha que um arquivo indexado está em sequencia por CODIGO-FUNCIONARIO.

  • Podemos desejar imprimir o arquivo começando, por exemplo, com o empregado que tenha CODIGO-FUNCIONARIO igual a 0010.

  • Ou podemos desejar usar ALTERNATE RECORD KEY para mostrar todos os empregados que tenham sobrenome começando com a letra "D".

  • O arquivo a ser processado desta maneira deve incluir um cláusula ORGANIZATION IS INDEXED, ter CODIGO-FUNCIONARIO como RECORD KEY e NOME-FUNCIONARIO como ALTERNATE KEY.
    O acesso ao arquivo deve ser sequencial (ACCESS IS SEQUENTIAL) se sarmos a chave dos registros (RECORD KEY) para encontrar um registro, embora desejarmos começar o acesso em algum ponto diferente do início do arquivo.


Pode ser usado com as seguintes cláusulas:
  • KEY IS - indica que irá posicionar na chave escolhida

  • KEY IS GREATER - indica que irá posicionar na chave do primeiro registro que seja maior que o informado.

  • KEY IS LESS - Indica que irá posicionar na chave do primeiro registro que seja menor que o informado.

  • KEY IS NOT GREATER - Indica que irá posicionar na chave do ultimo registro que seja menor ou igual que o informado.
    Pode ser substituído por KEY IS LESS OR EQUAL (ex: usado para buscar a última chave do arquivo)

  • KEY IS NOT LESS - Indica que irá posicionar na chave do primeiro registro que seja maior ou igual que o informado.
    Pode ser substituído por KEY IS GREATER OR EQUAL (ex: usado para buscar a primeira chave do arquivo)

Format 1:



Observações:

O arquivo deve estar em disco e ser aberto no modo I-O.
Deve ser manipulado através dos acessos sequencial (ACCESS MODE IS SEQUENTIAL) ou dinâmico (ACCESS MODE IS DYNAMIC). Veja o comando OPEN.

Para se obter o registro posicionado pelo comando START é necessário emitir um comando READ.

data-name-1 é o nome do campo chave, especificado na cláusula RECORD KEY, da cláusula SELECT, que também deve estar na definição do registro, no nível FD, da FILE SECTION, da DATA DIVISION.

Pode ser especificado como campo-chave um subconjunto deste, tomado da esquerda da direita, desde que o campo-chave seja um item de grupo.
Esta chave recebe o nome de chave genérica ou chave parcial.
Neste caso, a comparação será feita como se o operando maior (chave do registro) fosse truncado à direita, para que fique com o comprimento igual ao do menor (chave genérica).

Se a opção KEY não for especificada, será assumida uma relação de igualdade (KEY IS EQUAL TO).

Não sendo encontrada, no índice, uma chave que satisfaça a condição, ocorrerá a condição de INVALID KEY.
O teste do campo associado ao FILE STATUS pode substituir a opção INVALID KEY.

A opção WITH SIZE especifica a quantidade de caracteres na chave a ser usada no posicionamento.
É equivalente ao uso da chave genérica.

identifier-1 é um item elementar numérico cujo conteúdo corresponde à quantidade de caracteres a ser usada no posicionamento.

literal-1 é um literal numérico que corresponde à quantidade de caracteres a ser usada no posicionamento.