Stichwort "Performance": Solltest Du gleich eine größere Anzahl an Werten haben, dann könntest Du die "Batch-Funktionalität"-FireDAC nutzen. Grob gesagt übergibst Du der FireDAC-Komponente ein mehrdimensionales Array an Werten und lässt sie dann machen. Gegenüber einzelnen Requests konnte ich da Performance-Steigerungen um den Faktor 10 (!) erzielen.
Details dazu unter:
http://docwiki.embarcadero.com/RADSt..._DML_(FireDAC).
Ja eben...
unter SQLite werden Parameter von FireDac nur emuliert.
und um aus einem String mit
SQL.Text := 'insert into Customers (ID, RegionID, Name, Note) values (:ID, :RegionID, :Name, :Note)';
wieder eine
SQL Anweisung zu machen muss Firedac den String wieder zusammen bauen...
Weil die SQLite.dll nur
SQL-Strings verarbeiten kann.
Übrigens ein
Delphi-Quellcode:
SQLQuery.SQL.Text := 'BEGIN;';
...// inset 10000 Datensätze
SQLQuery.SQL.Text := 'COMMIT;';
Hat zur Folge das erst alles in
RAM kopiert wird und dann gebündelt an die
DLL übergeben wird.