Hallo,
ich habe viele Datensätze in eine SQLite-Datenbank zu schreiben, unter Windows dauert das nur ca. 10 Sekunden,
unter Android, der eigentlichen Anwendung braucht der Anwender viel Geduld, da gehen schon mal bis 5 Minuten drauf um ca. 10000 Datensätze mit jeweils ca. 15 Feldern zu schreiben!
Jetzt suche ich Möglichkeiten das zu beschleunigen:
Bisher habe ich sinngemäß folgendes gemacht:
Delphi-Quellcode:
FDQuery.Append;
FDQuery.Edit;
FDQuery.fieldByName('xxxx').AsString := 'asdffghg';
FDQuery.post;
Jetzt habe ich alle INSERTS in einer Stringlist und arbeite diese so ab:
Delphi-Quellcode:
FDQuery.SQL.Text := 'BEGIN TRANSACTION;';
FDQuery.ExecSQL;
for s := 0 to SQLList.Count - 1 do
begin
FDQuery.SQL.Text := SQLList[s];
FDQuery.ExecSQL;
end;
// abschicken
FDQuery.SQL.Text := 'COMMIT;';
FDQuery.ExecSQL;
Das geht minimal schneller, vielleicht 4 anstelle 5 Minuten
Was ist bei mir die Bremse oder geht das auf einem Handy wirklich alles so langsam, hat jemand eine Idee wo ich ansetzen könnte?
Ciao
Stefan