Saltar navegação

S01 - Índices

Conceitos

Nas tabelas, alternativamente ao uso dos subescritores, pode-se associar índices especiais às ocorrências.

Estes índices especiais são mais eficientes que o processo tradicional de subescrição, onde utilizam-se variáveis definidas na WORKING-STORAGE como índices. Os índices especiais permitem recursos avançados como pesquisa binária para localização das ocorrências da tabela.

O compilador aloca os registradores da CPU diretamente para uso dos índices especiais.

A definição destes índices especiais é feita na declaração da tabela através da seguinte sintaxe:

Nível nome-da-variável PIC definição-da-variável OCCURS n TIMES

INDEXED BY nome-do-indice

ASCENDING KEY campo-chave.

Neste caso, os índices não são declarados como variáveis da WORKING-STORAGE.

No exemplo;

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.

o índice especial IND-VENDAS foi alocado automaticamente para a tabela e não pode ser definido na WORKING-STORAGE.

Considerações

A cláusula ASCENDING KEY é opcional e utilizada para declarar que a tabela é classificada em ordem crescente pela variável MES-VENDA.

A cláusula DESCENDING KEY é utilizada em vez de ASCENDING KEY para declarar tabelas classificadas em ordem decrescente.

Licença: licença proprietária