Sobre tu problema... 100,000 registros debieran procesarse en cuestión de minutos. Para detectar cual es el cuello de botella, cronómetro en mano, revisá cuanto tiempo está tomando cada parte del proceso: Suponiendo que el comportamiento es líneal, está tomando mas o menos 0.5 segundos por registro.
digamos que el código:
Código Delphi
[-]
while not finarchivo do
begin
LeeLinea;
InsertaRegistro;
end;
podemos cambiarlo por:
Código Delphi
[-]
var
t1, t2, t3 : TDateTime;
while not finarchivo do
begin
t1 := now;
LeeLinea;
t2 := now;
InsertaRegistro;
t3 := now;
memo1.lines.add(
'tiempo lectura: %d ms.'#9
'tiempo insercion: %d', [
trunc((t2 - t1) * 1000),
trunc((t3 - t2) * 1000)]);
end;
Eso nos dará una idea de que está tardando. Estoy convencido que en tu caso, es la búsqueda del registro la que demora mucho tiempo... quizas el query (qparte) sea ineficiente.
Hasta luego.