Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Providers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 01-06-2014
Avatar de rcarrillom
[rcarrillom] rcarrillom is offline
Miembro Premium
 
Registrado: dic 2004
Ubicación: UK / North Sea / Norway / Golfo de México / Frente a mi Laptop
Posts: 219
Poder: 20
rcarrillom Va por buen camino
Gracias ecfisa, el escenario general es este, se generan varios archivos Access con la misma estructura por una aplicacion antigua cuyo contenido es un registro de entrada de un puerto serial, y con mi app leo los registros de todos ellos con ADO y los inserto en el ClientDataSet, llegando hasta 300 mil registros.

La estructura la genero de la siguiente manera:
Código Delphi [-]
procedure TdmData.DataModuleCreate(Sender: TObject);
begin
  //Crear la estructura inicial de la BD
  with cdsLog.FieldDefs do begin
    Add('ID'       , ftAutoInc);
    Add('Num1'       , ftFloat);
    Add('Num2'       , ftFloat);
    Add('Num3'       , ftFloat);
    Add('Flag'     , ftString, 1);
    Add('IsNav'    , ftBoolean);
    Add('Comment'  , ftString, 255);
    Add('TimeStamp', ftDateTime);
    Add('Num4', ftInteger);
  end;
  cdsLog.CreateDataSet;
end;

Y para llenarlo con registros, repito el proceso por cada archivo Access que el usuario seleccione con un diálogo Open con seleccion múltiple, como nota, el campo Comment, el 98% de las veces está vacío:

Código Delphi [-]
    ADOTable.Open;
    while not ADOTable.Recordset.EOF do begin
      cdsLog.Append;
      try
        for RecNum := 0 to ADOTable.FieldCount - 1 do
          cdsLog.FieldByName(ADOTable.Fields[RecNum].FieldName).Value := ADOTable.Recordset.Fields[RecNum].Value;
        cdsLog.Post;
      except
        cdsLog.Cancel;
        raise;
      end;
      ADOTable.Recordset.MoveNext;
    end;

Al terminar de anexarlos todos, inmediatamente intento leer ya sea el ChangeCount o el Delta y aqui es donde tarda muchisimo tiempo. Es en este punto donde no entiendo el porqué de la tardanza cuando son 235K registros agregados de un solo golpe, si le agrego 17K la respuesta es casi inmediata.
__________________
eLcHiCoTeMiDo - Rompecorazones profesional
Yo no soy presumido; ¿Pero de qué sirve mi humilde opinión contra la de los espejos?
Salva a un nylon, usa prendas de piel de foca
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Lentitud con ClientDataSet.XMLData en Servicio Datasnap code88 Varios 4 08-02-2013 18:43:07
buscar registros de un ClientDataSet a otro clientDataSet novato_erick Conexión con bases de datos 2 02-02-2013 20:48:09
Lentitud leer .csv ErYcK C++ Builder 23 05-07-2012 22:56:44
Lentitud en la red. Carlos Arevalo Varios 2 09-07-2007 19:04:08
Modificar propiedad Delta de CDS alucardo Conexión con bases de datos 0 04-10-2006 19:36:41


La franja horaria es GMT +2. Ahora son las 23:02:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi