quinta-feira, 21 de janeiro de 2016

Pesquisa em tabela - Search

Olá!

Para pesquisar um registro específico em uma tabela no COBOL, a busca pode ser realizada com o comando SEARCH.

O comando SEARCH pesquisa na tabela por meio de uma condição, e quando está condição é satisfeita se executa os COMANDOS-B. Mas quando a condição não é satisfeita, ou seja, a pesquisa chegou no fim da tabela e não encontrou resultado, então é realizado os COMANDOS-A.

Estrutura do comando:

SEARCH ALL NOME-TABELA
    NO FIM

        COMANDOS-A
    QUANDO CAMPO-TABELA IGUAL VALOR
        COMANDOS-B
SEARCH-FIM.


É necessário que a tabela seja indexada, e tem como boa prática indicar a chave da tabela em ordem ascendente ou descendente.

Exemplo de uma tabela:
       01 TABELA.
           03 TAB-A OCCURS  0 TO 5 TIMES
                      DEPENDING ON QUANTIDADE-REGISTROS
                     ASCENDING KEY TAB-A-CHAVE
                        INDEXED BY TAB-A-INDEX.
               05 TAB-A-CHAVE           PIC  9(009).
               05 TAB-A-CAMPO2          PIC  X(010).

Abaixo temos o código que Limpa, Preenche e Pesquisa o nome do aluno na tabela usando o comando SEARCH, sendo que a condição é quando a matricula informada for igual a uma que esteja na tabela.


O resultado para NOME-ALU = 'Deanne Dias'.


Possíveis situações:

  • Chave duplicada: quando a chave da tabela é inconsistente, e apresenta os mesmos valores em alguns registros, na execução do SEARCH será apresentado somente o primeiro registro encontrado.
  • Não utilizar o comando AT END: se não for encontrado resultado nada acontecerá.

Para Ctrl + C do código acesse aqui.
Consultar a relação de Termos e Abreviaturas acesse aqui.


Até o próximo post!


Nenhum comentário:

Postar um comentário