Einzelnen Beitrag anzeigen

Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Insert optimieren

  Alt 16. Sep 2010, 14:49
Also ich hab jetzt mal den Code so abgeändert:
Delphi-Quellcode:
 Frm_Messung.ZConnection1.StartTransaction;
  with Frm_Messung.ZQuery2 do
    begin
      saving := true;
      //list.Text := 'execute block as begin';
      for zt := 0 to round(Frm_Messung.Ch_Messung.BottomAxis.Maximum) do
        begin
          (*Params[0].AsInteger := tId;
          Params[1].AsInteger := zt;
          Params[2].AsFloat := arr_messwerte[tdim, zt, 0];
          Params[3].AsFloat := arr_messwerte[tdim, zt, 1];
          ExecSQL;*)

          list.Add('INSERT INTO Messwerte (ID_mess, Millisec, Messwert_Links, Messwert_Rechts) VALUES (' + InttoStr(tid) + ', ' + InttoStr(zt) +', ' + FloattoStr(arr_messwerte[tdim, zt, 0]) + ', '+ FloattoStr(arr_messwerte[tdim, zt, 1]) + ' );');
          frm_messung.pb_db.Position := frm_messung.pb_db.Position +1;
        end;
      //list.Add('end');
      SQL := list;
    end;
  try
  Frm_Messung.ZQuery2.ExecSQL;
  except
  Frm_Messung.ZConnection1.Rollback;
  end;
  Frm_Messung.ZConnection1.Commit;
Dann bekomm ich immer
Code:
Unknown Token in Line 2 Insert
@exilant
Der Firebird läuft auf einem WIN 2003 SBS, keine trigger keine indizes, und wenn ich die ganze Sache Embedded mach gehts etwas schneller so cs 15-20 sekunden für 30k

Edit:
Hab das grad gefunden
http://codicesoftware.blogspot.com/2...registers.html
der schafft in 19s 100k, aber ich versteh nicht ganz was er macht?
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"

Geändert von PhilmacFLy (16. Sep 2010 um 14:51 Uhr)
  Mit Zitat antworten Zitat