Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Beschleunigungstips für SQLite unter Android erwünscht

  Alt 17. Mai 2017, 15:49
Also ich mache das so... ca. 45000 Datensätze und 37 Felder. Dauert ca 18-25 Sekunden je nach Device. Der Source ist noch aus den Anfängen... Heute würde ich es auch anders machen...

Delphi-Quellcode:
 
          SQLConnection.Open;

          Felder := MakeFieldDef(FRecordDef);

          SQLQuery.SQL.Text := 'BEGIN;';
          SQLQuery.ExecSQL(true);
 
           while not(SQLReader.eof) do
            begin
              SQLReader.ReadSQLCrypt; // Lade die Daten aus einer verschlüsselten Datei

              inc(Count);

              if (Count mod 100) = 0 then
                StatusProg('',100.0 / MaxSize * SQLReader.Position,FloattoStrF(100.0 / MaxSize * SQLReader.Position,ffFixed,7,2)+'%');

              D := SQLReader.GetSQLBytes;

              SQLQuery.SQL.Text := 'INSERT INTO '+FTableName+' ('+Felder+') VALUES (0,'+D+PostFields+');';
              try
                SQLQuery.ExecSQL(false);
              except
                StatusProg('EXCEPTION',0,'');
              end;
            end;

          StatusProg('',100.0,SIndexWait); // 'Erzeuge Index, Bitte warten...'
          SQLQuery.SQL.Text := 'COMMIT;';
          SQLQuery.ExecSQL(true);

          SQLConnection.Close;
Mavarik
  Mit Zitat antworten Zitat