Buenos días,
tengo una aplicación que maneja una base de datos a través de Firebird con componentes IBX. Uno de los procesos consiste en la elaboración de un diario con registros importados de varias tablas. Una vez tengo la tabla del diario cargada con sus movimientos, leo de otra tabla el saldo inicial de la cuenta y después recorro todos los movimientos del diario estableciendo el saldo después de cada movimiento. El código es simple:
Código:
TMov.Open;
TMov.First;
while not TMov.Eof do
begin
TMov.Edit;
TMovSaldo.Value := Saldo + TMovDebe.Value - TMovHaber.Value;
Saldo := TMovSaldo.Value;
DebeMo := DebeMo + TMovDebe.Value;
HaberMo := HaberMo + TMovHaber.Value;
TMov.Post;
TMov.Next;
end;
El problema viene dado que, ahora que tengo diarios con mas de 2.000 movimientos, el recorrer los registros para incluir el saldo tarda mucho, estamos hablando de cerca de 30 segundos con un Pentium 4 ..... o unos 10 en un dualcore.
El código, desde mi modesto punto de vista, no tiene mucho mas donde rascar .... pero me parece excesivo el tiempo de procesamiento para ese numero de registros ....
He hecho la prueba exportando las tablas a Interbase y a traves de ese gestor los tiempos empeoran ligeramente.
Alguna sugerencia ..... ?