Menu

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 -

RECORD FOUND
33
JKL

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)".