Buenas a todos,
Soy nuevo en el foro y tengo un problema(como casi todos los nuevos)
Tengo una aplicacion que accede a una BD de access, he realizado las consultas y el codigo y me funciona sin errores, el problema es que en la tablas hay muchos registros, en una de ellas unos 114000 y en otra unos 270000, debido a esto la ejecuccion de mi codigo se eterniza hasta limites increibles, media hora para un codigo como el siguiente
Código:
Datamodule1.Query2.Active:=true;
datamodule1.Query2.First;
while not(datamodule1.Query2.Eof) do
begin
try
datamodule1.Tbtic.Insert;
datamodule1.Tbtic.FieldByName('telno').AsString:=datamodule1.Query2.fieldbyname('telno').AsString;
datamodule1.Tbtic.FieldByName('duratime').AsString:=datamodule1.Query2.fieldbyname('duratime').AsString;
datamodule1.Tbtic.FieldByName('address').AsString:=datamodule1.Query2.fieldbyname('address').AsString;
datamodule1.Tbtic.FieldByName('rptime').AsDateTime:=datamodule1.Query2.fieldbyname('rptime').AsDateTime;
datamodule1.Tbtic.FieldByName('sumcoin').AsFloat:=datamodule1.Query2.fieldbyname('sumcoin').AsFloat;
datamodule1.Tbtic.FieldByName('dialno').AsString:=datamodule1.Query2.fieldbyname('dialno').AsString;
cad:= copy(datamodule1.Query2.fieldbyname('starttime').AsString,7,2)+'/'+copy(datamodule1.Query2.fieldbyname('starttime').AsString,5,2)+'/';
cad:=cad+ copy(datamodule1.Query2.fieldbyname('starttime').AsString,0,4)+' '+copy(datamodule1.Query2.fieldbyname('starttime').AsString,9,2)+':';
cad:=cad+ copy(datamodule1.Query2.fieldbyname('starttime').AsString,11,2)+':'+copy(datamodule1.Query2.fieldbyname('starttime').AsString,13,2);
fecha:=strtodatetime(cad);
datamodule1.Tbtic.FieldByName('starttime').AsDateTime:=fecha;
numero_largo:=datamodule1.Query2.fieldbyname('dialno').AsString;
posicion:=(pos('F',numero_largo));
if posicion<> 0 then
begin
numero:= copy(numero_largo,0,posicion-1);
end
else
begin
numero:=numero_largo;
end;
datamodule1.Tbtic.FieldByName('dialno').AsString:=numero;
datamodule1.Tbtic.Post;
except
showmessage('No se ha podido guardar con exito');
end;
datamodule1.Query2.Next;
end;
el codigo sql del query2 es una simple consulta como la siguiente
Código SQL
[-]SELECT PHONE.TELNO AS TELNO, PHONE.ADDRESS AS ADDRESS, TAG26.RPTIME AS RPTIME, TAG26.STARTTIME AS STARTTIME, TAG26.DURATTIME AS DURATIME, TAG26.SUMCOIN AS SUMCOIN, TAG26.DIALNO AS DIALNO
FROM PHONE, TAG26
WHERE PHONE.IDNO=TAG26.IDNO;
no se que hacer, si alguien me dice que migre todo de access a otro creo que lo hare, uso access porque es la BD que me encontre y en la que despues he ido agregando mas tablas y registros, pero ahora tengo este problema.
Me gustaria alguna respuesta en la que no tuviese que migrar los datos, pero Agradeceria cualquier ayuda.
Muchas Gracias