A instrução START fornece um meio de posicionamento dentro de um arquivo indexado ou relativo para posterior recuperação de registros seqüenciais.
Quando a instrução START é executada, o arquivo indexado ou relativo associado deve estar aberto no modo INPUT ou IO.
>>-START--file-name-1-------------------------------------------> >--+-------------------------------------------------------------------+--> '-KEY--+----+--+-EQUAL--+----+-----------------------+--data-name-1-' '-IS-' | '-TO-' | +- = ---------------------------------+ +-GREATER--+------+-------------------+ | '-THAN-' | +- > ---------------------------------+ +-NOT LESS--+------+------------------+ | '-THAN-' | +-NOT < ------------------------------+ +-GREATER--+------+--OR EQUAL--+----+-+ | '-THAN-' '-TO-' | '- >= --------------------------------' >--+------------------------------------------+-----------------> '-INVALID--+-----+--imperative-statement-1-' '-KEY-' >--+----------------------------------------------+-------------> '-NOT INVALID--+-----+--imperative-statement-2-' '-KEY-' >--+-----------+----------------------------------------------->< '-END-START-'
file-name-1
Deve nomear um arquivo com acesso sequencial ou dinâmico. file-name-1 deve ser definido em uma entrada FD na divisão de dados e não deve nomear um arquivo de classificação.
KEY
Quando KEY é especificada, o indicador de posição do arquivo é posicionado no registro lógico no arquivo cujo campo chave satisfaz a comparação.
Quando KEY não é especificada, KEY IS EQUAL (para a chave de registro principal) está implícito.
data-name-1
Pode ser qualificado; Não pode ser subscrita.
Quando a instrução START é executada, é feita uma comparação entre o valor atual no nome de dados de chave e o campo de chave correspondente no índice do arquivo.
Se FILE STATUS é especificado na entrada de controle de arquivo, a chave de status de arquivo associado é atualizado quando a instrução START é executado.
INVALID KEY
Se a comparação não for satisfeita por qualquer registro no arquivo, uma condição de chave inválida existe; A posição do indicador de posição do arquivo é indefinida e (se especificada) a instrução imperativa INVALID KEY é executada.
Tanto a INVALID KEY como um procedimento EXCEPTION/ERROR aplicável podem ser omitidos.
END-START
Este terminador de escopo explícito serve para delimitar o escopo da instrução START. END-START permite que uma instrução START condicional seja aninhada em outra instrução condicional. END-START também pode ser usado com uma instrução START imperativa.
Arquivos indexados
Quando a palavra-chave for especificado, o item de dados chave utilizada para a comparação é data-name-1.
Quando a frase KEY não é especificada, o item de dados-chave usado para a comparação EQUAL TO é a principal RECORD KEY.
Quando a execução instrução START for bem sucedida, a RECORD KEY ou ALTERNATIVE RECORD KEY com o qual os data-name-1 está associado torna-se a chave de referência para as declarações READ subseqüente.
data-name-1
Pode ser qualquer um dos seguintes:
- O principal RECORD KEY.
- Qualquer ALTERNATE RECORD KEY.
- Um item de dados dentro de uma descrição de registro para um arquivo cuja posição de caráter mais à esquerda corresponde à posição de caráter mais à esquerda daquela chave de registro; Ele pode ser qualificado. O tamanho do item de dados deve ser menor ou igual ao comprimento da chave de registro para o arquivo.
Independentemente de sua categoria, data-name-1 é tratado como um item alfanumérico para os fins da operação de comparação.
O indicador de posição do arquivo aponta para o primeiro registro no arquivo cujo campo de chave satisfaz a comparação. Se o operando na comparação são de comprimentos desiguais, a comparação prossegue como se o campo mais longo estivesse truncado à direita para o comprimento do campo mais curto. Todas as outras regras de comparação numérica e alfanumérica aplicam-se, exceto que PROGRAM COLLATING SEQUENCE, se especificada, não tem efeito.
Quando a execução instrução START for bem sucedida, a RECORD KEY com o qual os data-name-1 está associado torna-se a chave de referência para as declarações leitura subseqüente.
Quando a execução da instrução START é malsucedida, a chave de referência é indefinida.
Arquivos relativos
Quando a palavra-chave for especificado, os data-name-1 deve especificar a tecla correspondente.
Se KEY é ou não especificada, o item de dados-chave usado na comparação é o item de dados RELATIVE KEY. Aplicam-se regras de comparação numérica.
O indicador de posição do arquivo aponta para o registro lógico no arquivo cuja chave satisfaz a comparação especificada.