FireDAC.Comp.DataSet.TFDDataSet.Execute

De RAD Studio API Documentation
Aller à : navigation, rechercher

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 :

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

Exemples