Pessoal veja se alguém já passou por isso e teve solução
Tenho no sistema uma rotina de atualização de valores em uma tabela, ou seja vou para o inicio do arquivo percorro todos os registros atualizando diversos valores, exemplo:
go top
while !eof()
replace campoa, campob, campoc etc
skip
enddo
Claro que tem bloqueio de de arquivo antes, em DBF/CDX ou LETODB sem controle de transação funciona bem, acontece que resolvi aproveitar as caracterÃsticas do leto de transação, então incluir na rotina leto_beginTransaction(), ficando mais ou menos assim
go top
Flock()
begin sequence
Leto_BeginTransaction()
while !eof()
faz os replaces dos campos
skip 1
enddo
recovery using oErrr
mensagem de erro
leto_rollback()
end sequence
leto_CommitTransaction()
DbUnlockAll()
Claro que tem o controle de erro com errorblock, aà só foi o esqueleto da rotina, como expliquei acima sem o controle funciona perfeitamente, quando coloco o controle, pois quero que o sistema ou atualize tudo ou não atualize nada ele inicia normal mas ao tempo que vai atualizando os registro vai se tornando cada vez mais lento até não conseguir completar a operação, a tabela tem cerca de 50.000 registros, em DBF/CDX cerca de 8 minutos, com LetoDb sem transação, 15 minutos, e com controle de transação não conseguir avaliar pois já tinha se passado mais de 3 horas e ficava em torno de 60%.
Peço uma luz aos mestres para encontrar uma solução, se existir ou pode ser um bug do letoDb?