Ver Mensaje Individual
  #1  
Antiguo 19-01-2012
Avatar de fide_uci
fide_uci fide_uci is offline
Miembro
 
Registrado: ene 2009
Ubicación: Cuba - La Habana
Posts: 226
Reputación: 16
fide_uci Va por buen camino
Exclamation Ayuda con Insercion lentisima en SQLite3

Hola amigos, gracias por leer el post. Me encuentro desarrollando una aplicacion para el envio de correos y estoy ahora programando un asistente de importacion que importa desde un archivo (txt, csv, etc.) hacia la BD. El gran problema es que la insercion esta lentisima. Aqui esta el codigo que he creado. Utilizo Delphi 7, ZeosDB 7 y SQLite3.

Código Delphi [-]
var
  vFile: TStringList;
  vX: Integer;
begin

  JvWizard1.ActivePageIndex := 1;

  //Cargar el archivo e importarlo a la BD
  vFile := TStringList.Create;

  try
    vFile.LoadFromFile(boxArchivoSeleccionado.Text);

    Gauge1.MinValue := 0;
    Gauge1.MaxValue := vFile.Count -1;

    for vX := 0 to vFile.Count -1 do
      begin
        //Aqui mostrar el progreso y meter en la BD !!!

        DataM.tbd_recipients.Insert;
        DataM.tbd_recipientslist.AsInteger := 0;
        DataM.tbd_recipientsname.AsString := '';
        DataM.tbd_recipientsemail.AsString := vFile.Strings[vX];
        DataM.tbd_recipients.Post;
        Gauge1.Progress := vX;
        Application.ProcessMessages;
      end;

      ShowMessage(Format('Se han importado %d correos de forma satisfactória.', [vFile.Count]));
  finally
    vFile.Free;
  end;

Por lo que estuve mirando SQLite es rapido cuando se agrupan las inserciones o sea que yo deberia hacer una consulta INSERT y agregar todos los valores pero tengo miedo pasarme y explotar la memoria de la PC.

Por favor ayuda los que conocen del tema a ver de que forma puedo insertar rapido y seguro muchos registros en SQLite 3.
Responder Con Cita