Conceitos
A instrução SEARCH também é utilizada para pesquisas binárias em toda a tabela indexada.
Formato 2 - pesquisa binária
SEARCH ALL nome-da-variável-1
AT END declaração-imperativa-1
WHEN expressão-condicional declaração-imperativa-2.
Considerações
Na pesquisa binária a tabela deve ser definida com a cláusula ASCENDING ou DESCENDING KEY, que definirá os campos que serão usados na pesquisa.
A clausula WHEN deverá testar necessariamente os campos definidos na cláusula ASCENDING ou DESCENDING KEY da tabela.
A opção ALL da sintaxe do SEARCH é a opção que indica pesquisa binária.
O comando SEARCH não tem a opção VARYING.
Todas as ocorrências da tabela serão tratadas até que a expressão condicional seja satisfeita.
Por exemplo, na tabela;
01 VENDAS-MES OCCURS 12 TIMES INDEXED BY IND-VENDAS ASCENDING KEY MES-VENDA.
03 MES-VENDA PIC 99.
03 VALOR-VENDA PIC 9(6)V99.
a instrução SEARCH no Formato 2 será;
SEARCH ALL VENDAS-MES
AT END DISPLAY “MES NAO LOCALIZADO”
WHEN MES-VENDA (IND-VENDAS) = MES-PESQUISADO
MOVE VALOR-VENDA (IND-VENDAS) TO ......