Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Diferença entre OCCURS e REDEFINES

Não entendi qual é a diferença (ou vantagem?) entre criar uma tabela utilizando apenas o OCCURS, e fazer o mesmo usando o REDEFINES. O que ganho usando este último? Se eu quiser utilizar apenas o OCCURS de maneira otimizada, não poderia simplesmente atribuir os valores utilizando o VALUE na working-storage section, ao invés de popular a tabela na procedure? Qual o ponto de usar o REDEFINES nesse caso de uma tabela indexada simples?

1 resposta
solução

Rodrigo, boa tarde.

Nos exemplos do curso (meses do ano), quando criado com occurs a população dos meses é feita em um paragrafo especifico e precisa ser chamado (perform) antes do uso no display (tudo feito na procedure division) Com redefines o processo é feito na propria Working Storage da Data Division, portanto antes do processamento (procedure). Isso ocasiona melhor performace pois a populacao dos dados (redefines) é feita antes do processamento na fase de pre-execucao.

Ps: Não dá para atribuir value aos itens da uma variavel occurs direto.

OK Ivan