Hi
DP'ler,
ich habe angefangen rudimentäre Tests für ein neues Tool durchzuführen.
Folgende Vorgaben muss ich einhalten:
1.) Das Tool soll voll Datenbankunterstützt laufen.
2.) Die Schnittstelle zur Datenbank soll pur auf
SQL basieren. (Rückgabe durch dynamische Arrays.)
Bei mir stellt sich jetzt, in Bezug auf SQlite, folgendes Problem:
Wir benutzen sehr viele einfache Parameterfenster. Beim öffnen der Fenster hole ich die Daten
aus der Datenbank und weisse diese den entsprechenden Feldern (Tedit, Combobox usw) zu.
Das geschieht alles automatisch und funktioniert ohne Probleme.
Beim verlassen der Fenster muss dieser Vorgang umgekehrt laufen.
Dort gibt es massive Performanceprobleme.
Das Updaten dauert für ca 50 Editfelder oder Komboboxen um die 10 Sekunden.
Delphi-Quellcode:
if li='
'
then li:='
empty';
SQL:='
select * from Parameters where NAME = '+chr(39)+
name+chr(39);
tab :=
db.GetTable(
sql);
If tab.FieldAsString(1)<>li
then
begin
SQL:='
update Parameters set VALUE = '+chr(39)+li+chr(39)+'
where NAME = '+chr(39)+
name+chr(39);
try
DB.ExecSQL(
SQL);
main_form.memo1.lines.Add('
update');
except
SQL:='
insert into Parameters (NAME,VALUE) values ('+chr(39)+
name+chr(39)+'
,'+chr(39)+li+chr(39)+'
)';
DB.ExecSQL(
SQL);
main_form.memo1.lines.Add('
insert');
end;
end;
Vielleicht hat irgendjemand eine Idee wie man das Ganze etwas beschleunigen kann.
Die memo-einträge habe ich nur zum Testen im Code!