FireDAC.Comp.DataSet.TFDDataSet.Execute

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure Execute(ATimes: Integer = 0; AOffset: Integer = 0); virtual;

C++

virtual void __fastcall Execute(int ATimes = 0x0, int AOffset = 0x0);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDDataSet

Beschreibung

Führt eine SQL-Anweisung aus.

Mit Execute führen Sie eine SQL-Anweisung aus, die aktuell Eigenschaften von abgeleiteten Klassen zugewiesen ist:

Mit Execute führen Sie Abfragen aus, die keinen Cursor auf Daten zurückgeben (wie INSERT, UPDATE, DELETE, CREATE TABLE, CALL, BEGIN .. END usw.). Rufen Sie für SELECT-Anweisungen und andere Anweisungen, die Cursors zurückgeben, Open anstelle von Execute auf.

Execute bereitet die SQL-Anweisung für die Ausführung vor, wenn sie noch nicht vorbereitet wurde. Um die Performance zu steigern, sollte in einer Anwendung die Methode Prepare vor dem ersten Aufruf von Execute aufgerufen werden.

Mit ResourceOptions.CmdExecMode steuern Sie den asynchronen Ausführungsmodus. Mit ResourceOptions.CmdExecTimeout können Sie die maximale Dauer für die Ausführung der Anweisung festlegen. Danach wird die Anweisungsausführung abgebrochen und eine Exception ausgelöst.

Mit AbortJob brechen Sie die Anweisungsausführung ab.

Vor der Anweisungsausführung wird das Ereignis BeforeExecute ausgelöst. Wenn der Server bei der Anweisungsausführung einen Fehler zurückgibt, dann löst FireDAC eine Exception aus. Der Fehler kann im OnError-Ereignis analysiert werden. Nach dem Abschluss der Anweisungsausführung werden alle Ausgabeparameter in die Eigenschaft Params übernommen, und das Ereignis AfterExecute wird ausgelöst.

Wenn ATimes gleich null oder eins ist, wird die Anweisung im Standardmodus ausgeführt, ansonsten wird sie im Array DML-Modus ausgeführt. Standardmäßig sind ATimes und AOffset gleich 0. ATimes gibt die Größe des Parameter-Arrays an. AOffset gibt an, bei welchem Zeilenindex im Parameter-Array die Ausführung der Array DML-Anweisung beginnen soll. ATimes muss kleiner oder gleich Params.ArraySize sein, ansonsten wird eine Exception ausgelöst.

Nach der Anweisungsausführung kann in der Anwendung der Wert der Eigenschaft RowsAffected überprüft werden, um festzustellen, wie viele Datenbankdatensätze von der letzen Anweisungsausführung betroffen waren.

Beispiel

 
 var
   i: Integer;
 ....
 FDQuery1.SQL.Text := 'insert into mytab values (:p1, :p2)';
 FDQuery1.Params.ArraySize := 10;
 for i := 0 to FDQuery1.Params.ArraySize - 1 do begin
   FDQuery1.Params[0].AsIntegers[i] := i;
   FDQuery1.Params[1].AsStrings[i] := 'qwe';
 end;
 FDQuery1.Execute(FDQuery1.Params.ArraySize, 0);

Siehe auch

Beispiele