Ver Mensaje Individual
  #1  
Antiguo 16-09-2004
Tecnic2 Tecnic2 is offline
Miembro
 
Registrado: may 2004
Posts: 155
Reputación: 20
Tecnic2 Va por buen camino
Question Algun consejo para copiar datos?

Hola, estoy haciendo una aplicacion que tiene que coger tablas .dbf y copiar todos sus registros en tablas .mdb.
Obtengo los datos de las tablas .dbf con un TADOQuery y las .mdb con un TTable.
Pues bien, el principal problema es que el total de registros a copiar es de 400.000 aproximadamente, y tarda más de 30 minutos en completar el traspaso.
Lo que quiero es saber si hay alguna otra forma de hacerlo para ir más rápido a parte de la que yo utilizo.

Ésta es la funcion para copiar una de las tablas:

procedure TFAssistent.VolcarAlbfaccp();
begin
ADOQueryAux.Close;
ADOQueryAux.SQL.Clear;
ADOQueryAux.SQL.Add('SELECT fecfac, codpro, ejefac, numfac');
ADOQueryAux.SQL.Add('FROM albfaccp');
ADOQueryAux.Open;

while (n_regs <= ADOQueryAux.RecordCount -1) do
begin
inc(n_regs);
lInfo2.Caption := 'Registro: ' + IntToStr(n_regs) + ' de ' + FloatToStr(ADOQueryAux.RecordCount);
BarraProgreso.Position := n_regs;
TAccessDatos.Insert;
TAccessDatos.FieldByName('fecfac').AsString := ADOQueryAux.Recordset.Fields.Item[0].Value;
TAccessDatos.FieldByName('codpro').AsString := ADOQueryAux.Recordset.Fields.Item[1].Value;
TAccessDatos.FieldByName('ejefac').AsString := ADOQueryAux.Recordset.Fields.Item[2].Value;
TAccessDatos.FieldByName('numfac').AsString := ADOQueryAux.Recordset.Fields.Item[3].Value;
TAccessDatos.Post;
ADOQueryAux.Recordset.MoveNext;
end;
end;

Muchas gracias.
Responder Con Cita