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);
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
procedure function |
public | FireDAC.Comp.DataSet.pas FireDAC.Comp.DataSet.hpp |
FireDAC.Comp.DataSet | TFDDataSet |
Description
Exécute une commande SQL.
Appelez Execute pour exécuter une instruction SQL actuellement assignée aux propriétés de la classe descendante :
- TFDCustomQuery.SQL.
- TFDCustomStoredProc.StoredProcName.
- TFDCustomMemTable.Adapter.SelectCommand.CommandText. Ou la commande assignée au TFDCustomCommand.CommandText de l'objet commande, qui est assigné à SelectCommand. L'objet adaptateur est assigné à Adapter.
Utilisez Execute pour exécuter des requêtes qui ne renvoient pas un curseur aux données (telles que INSERT, UPDATE, DELETE, CREATE TABLE, CALL, BEGIN .. END, etc). Pour les instructions SELECT et les autres curseurs de renvoi, appelez Open à la place de Execute.
Execute prépare l'instruction SQL pour l'exécution, si elle n'a pas déjà été préparée. Pour améliorer les performances, une application doit normalement appeler la méthode Prepare avant d'appeler Execute pour la première fois.
Utilisez ResourceOptions.CmdExecMode pour contrôler le mode d'exécution asynchrone. De plus, utilisez ResourceOptions.CmdExecTimeout pour définir le temps d'exécution maximal de la commande. Après ce temps, l'exécution de la commande est annulée et une exception est déclenchée.
Pour annuler l'exécution de la commande, utilisez AbortJob.
Avant l'exécution de la commande, l'événement BeforeExecute est déclenché. Si le serveur renvoie une erreur d'exécution de la commande, FireDAC déclenche alors une exception. Elle peut être analysée dans l'événement OnError. Dès que l'exécution de la commande est terminée, tous les paramètres de sortie sont placés dans la propriété Params et l'événement AfterExecute est déclenché.
Si ATimes
est égal à zéro ou à un, la commande s'exécute en mode standard, sinon elle s'exécute en mode Array DML. Par défaut, ATimes
et AOffset
sont égaux à 0. ATimes
spécifie la taille du tableau des paramètres. AOffset
spécifie à quel index de ligne dans le tableau des paramètres l'exécution de la commande Array DML doit commencer. ATimes
doit être inférieur ou égal à Params.ArraySize, sinon une exception est déclenchée.
Après l'exécution de la commande, l'application peut vérifier la valeur de la propriété RowsAffected pour voir combien d'enregistrements de base de données ont été affectés par la dernière exécution de la commande.
Exemple
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);
Voir aussi
- Exécution des commandes
- 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
Exemples
- Exemple FireDAC TFDQuery Batch
- Exemple FireDAC TFDQuery Array DML