Leider kann ich das überhaupt nicht nachvollziehen.
Poste mal mein Programmcode für einen Update mit TpFIBQuery...
die Prozedur mit 1000 mal aufgerufen...
Delphi-Quellcode:
DataRec.LastUpdate := Now;
FQueryUpdate.Transaction.StartTransaction;
if (not FQueryUpdate.Prepared) then begin
FQueryUpdate.SQL.Text := 'UPDATE table_test SET name=:name, number=:number, lastupdate=:lastupdate WHERE id=:id';
FQueryUpdate.Prepare;
end;
FQueryUpdate.ParamByName('id').AsInteger := DataRec.Id;
FQueryUpdate.ParamByName('name').AsString := DataRec.Name;
FQueryUpdate.ParamByName('number').AsInteger := DataRec.Id;
FQueryUpdate.ParamByName('lastupdate').AsDateTime := DataRec.LastUpdate;
FQueryUpdate.ExecQuery;
FQueryUpdate.Commit;
Mache ich rigendwas falsch?
Zeiten bei 1000 Datensätzen:
Interbase: ~ 224 ms
Firebird: ~ 1400 ms