Porque o EVAL({||}) e EVERY no "index on" não está
Enviado: 27 Fev 2007 13:29
Boa tarde,
No clipper eu tinha esta rotina de indexação funcionado:
A função eval() executa a funçao Meter( aMeter ) para desenhar uma barra de progresso e seria executada em função do valor do comando EVERY.
Exemplo:
Total de Regs := ( LastRec() * 2 )
5000regs. no arquivo x 2 indices = 10000 regs. total
aMeter[3] := 1
INDEX ON CodMat TAG "I01" TO ( cInd ) EVAL {|| Meter( aMeter ) } EVERY aMeter[3]
INDEX ON DesMat TAG "I02" TO ( cInd ) EVAL {|| Meter( aMeter ) } EVERY aMeter[3]
Como o valor do EVERY = 1 , a função Meter( aMeter ) será executada 10000 !
Se o EVERY = 2 a função Meter( aMeter ) será executada 5000 !
No xHarbour isto não está funcionando, no caso o EVERY so executa a função Meter( aMeter ) 2 vezes. Sempre a qtde de indices.
Voces tem idéia do que acontece ??
Agradeço a dica.
cez_a@ubbi.com.br
No clipper eu tinha esta rotina de indexação funcionado:
A função eval() executa a funçao Meter( aMeter ) para desenhar uma barra de progresso e seria executada em função do valor do comando EVERY.
Exemplo:
Total de Regs := ( LastRec() * 2 )
5000regs. no arquivo x 2 indices = 10000 regs. total
aMeter[3] := 1
INDEX ON CodMat TAG "I01" TO ( cInd ) EVAL {|| Meter( aMeter ) } EVERY aMeter[3]
INDEX ON DesMat TAG "I02" TO ( cInd ) EVAL {|| Meter( aMeter ) } EVERY aMeter[3]
Como o valor do EVERY = 1 , a função Meter( aMeter ) será executada 10000 !
Se o EVERY = 2 a função Meter( aMeter ) será executada 5000 !
No xHarbour isto não está funcionando, no caso o EVERY so executa a função Meter( aMeter ) 2 vezes. Sempre a qtde de indices.
Voces tem idéia do que acontece ??
Agradeço a dica.
cez_a@ubbi.com.br