Einzelnen Beitrag anzeigen

mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#3

AW: Kleiner Geschwindigkeitstest von Insert

  Alt 18. Dez 2016, 10:48
wenn es dir echt um Geschwindigkeit geht, dann sind deine Insert Schleifen noch subobtimal

entweder einfach
Delphi-Quellcode:
for a := 1 to testzahl do begin
    Form1.ZQuery1.SQL.text := 'Insert into daten2 (zahl) values ('+IntToStr(a)+')';
    Form1.ZQuery1.ExecSQL;
end;
oder besser
Delphi-Quellcode:
Form1.ZQuery1.SQL.text := 'Insert into daten2 (zahl) values (:zahl);';

qPara:=Form1.ZQuery1.ParamByName('zahl');
for a := 1 to testzahl do begin
    qPara.AsInteger := a;
    Form1.ZQuery1.ExecSQL;
end;

ich würde wenn es was wie "PrepareSQL" bei Zeos gibt es nutzen, und Parameter nur 1xabfragen+"merken", sowie Query als Übergabe im Aufruf mitgeben(Form. ist immer unschön):
Delphi-Quellcode:
Query.SQL.text := 'begin transaction;';
Query.ExecSQL;

Query.SQL.text := 'Insert into daten2 (zahl) values (:zahl);';
Query.PrepareSQL;

qPara:=Query.ParamByName('zahl');
for a := 1 to testzahl do begin
    qPara.AsInteger := a;
    Query.ExecSQL;
end;

Query.SQL.text := 'Commit;';
Query.ExecSQL;
  Mit Zitat antworten Zitat