COBOL - PESQUISAR TODOS Statement
- Search All é um método de busca binário, que é usado para encontrar elementos dentro da tabela.
- A tabela deve estar em ordem de classificação para a opção Pesquisar tudo.
- O índice não requer inicialização.
- O resultado do SEARCH ALL é um sim ou um não. Portanto, não podemos codificar várias condições de pesquisa ao usar a função SEARCH ALL.
- Na busca binária, a tabela é dividida em duas metades e determina em qual metade do elemento procurado está presente. Este processo se repete até que o elemento seja encontrado ou o fim seja alcançado.
Sintaxe:
SEARCH ALL identifier-1
AT END imperative statement-1
WHEN equal-condition-1 and equal-condition-2
{imperative statement-2}
{NEXT SENTENCE}
END-SEARCH
|
Exemplo:
IDENTIFICATION DIVISION.
PROGRAM-ID. CBLHELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-TABLE.
05 WS-RECORD OCCURS 10 TIMES ASCENDING KEY IS WS-NUM INDEXED BY I.
10 WS-EMP-ID PIC 9(2).
10 WS-NAME PIC A(3).
PROCEDURE DIVISION.
MOVE '00ABC11DEF22GHI33JKL44MNO55PQR' TO WS-TABLE.
SEARCH ALL WS-RECORD
AT END DISPLAY 'INVALID EMP ID(RECORD NOT FOUND IN TABLE)'
WHEN WS-NUM(I) = 33
DISPLAY 'RECORD FOUND '
DISPLAY WS-EMP-ID(I)
DISPLAY WS-NAME(I)
END-SEARCH.
STOP RUN.
|
RESULTADO:
Quando você compila e executa o programa acima, ele produz o seguinte resultado -
Se EMP-ID '33' não for encontrado na tabela WS-TABLE, a saída do programa acima será "INVALID EMP ID(RECORD NOT FOUND IN TABLE)".