Delphi-Quellcode:
function StoreInToPlaceUpdate(pStoreId, pBuildingId, pRoomId: Integer; pSize,
pItemNbr: string; pCategoryNbr, pAssemblyStatus, pStation: Integer; pComment:
string; pOrderNbr, pSequenceNbr: integer; out oPlace: string): Integer;
var
sp: TUniStoredProc;
begin
Result:= 0;
try
sp:= TuniStoredProc.Create(nil);
sp.Connection := fMainForm.coMariaDb;
sp.StoredProcName := 'StoreInToPlaceUpdate';
sp.PrepareSQL;
sp.Params[0].AsInteger:= pStoreId;
...
sp.ExecSQL;
oPlace:= sp.Params[13].AsString;
Result :=sp.Params[12].AsInteger
finally
FreeAndNil(sp);
end;
end;
Du rufst StoreInToPlaceUpdate bei 1000 Datensätzen 1000 Mal auf?
Du erzeugst also jedes Mal erst TuniStoredProc, machst jedes Mal ein Prepare etc.
Wenn, dann Erzeugen, Prepare und Freigabe in einer äusseren Procedure, welche die StoreInToPlaceUpdate dann aufruft mit der UniStoredProc als ersten Parameter.
Und TuniStoredProc.Options.AutoPrepare auf False.
Frank