FireDAC.Comp.DataSet.TFDDataSet.Execute
Delphi
procedure Execute(ATimes: Integer = 0; AOffset: Integer = 0); virtual;
C++
virtual void __fastcall Execute(int ATimes = 0x0, int AOffset = 0x0);
Inhaltsverzeichnis
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:
- TFDCustomQuery.SQL.
- TFDCustomStoredProc.StoredProcName.
- TFDCustomMemTable.Adapter.SelectCommand.CommandText. Oder die der Eigenschaft TFDCustomCommand.CommandText des Anweisungsobjekts zugewiesene Anweisung, die SelectCommand zugewiesen ist. Das Adapterobjekt wird Adapter zugewiesen.
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
- Ausführen von Anweisungen
- Array DML
- FireDAC.Comp.Client.TFDCustomQuery.SQL
- FireDAC.Comp.Client.TFDCustomQuery.ExecSQL
- FireDAC.Comp.Client.TFDCustomStoredProc.StoredProcName
- FireDAC.Comp.Client.TFDCustomStoredProc.ExecProc
- FireDAC.Comp.Client.TFDAdaptedDataSet.AbortJob
- FireDAC.Comp.Client.TFDCustomMemTable.Adapter
- FireDAC.Comp.Client.TFDRdbmsDataSet.Prepare
- FireDAC.Comp.Client.TFDRdbmsDataSet.OnError
- FireDAC.Comp.DataSet.TFDDataSet.BeforeExecute
- FireDAC.Comp.DataSet.TFDDataSet.AfterExecute
Beispiele
- FireDAC TFDQuery Batch (Beispiel)
- FireDAC TFDQuery Array DML (Beispiel)