FireDAC.Comp.Client.TFDRdbmsDataSet.Open

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

procedure Open(const ASQL: String); overload;
procedure Open(const ASQL: String; const AParams: array of Variant); overload;
procedure Open(const ASQL: String; const AParams: array of Variant;  const ATypes: array of TFieldType); overload;

C++

HIDESBASE void __fastcall Open(const System::UnicodeString ASQL)/* overload */;
HIDESBASE void __fastcall Open(const System::UnicodeString ASQL, const System::Variant *AParams, const int AParams_High)/* overload */;
HIDESBASE void __fastcall Open(const System::UnicodeString ASQL, const System::Variant *AParams, const int AParams_High, const Data::Db::TFieldType *ATypes, const int ATypes_High)/* overload */;
inline void __fastcall  Open(void){ Data::Db::TDataSet::Open(); }

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
public
FireDAC.Comp.Client.pas
FireDAC.Comp.Client.hpp
FireDAC.Comp.Client TFDRdbmsDataSet

Description

Exécute l'instruction SQL spécifiée.

Appelez Open pour exécuter l'instruction SQL spécifiée par ASQL ou celle actuellement assignée à l'objet de commande interne si ASQL est vide.

Cette méthode est surchargée :

  • La première méthode surchargée exécute l'instruction SQL spécifiée et ouvre l'ensemble de données.
  • La deuxième méthode surchargée exécute l'instruction SQL spécifiée avec les valeurs des paramètres spécifiés, et ouvre l'ensemble de données.
  • La troisième méthode surchargée exécute l'instruction SQL spécifiée avec les valeurs des paramètres spécifiés, et ouvre l'ensemble de données.

La méthode ferme l'ensemble de données s'il était actif, puis assigne ASQL au texte de la commande et définit la propriété Active sur True. Quand Active vaut True, l'ensemble de données est rempli par les données d'une base de données. Cette méthode vous permet de spécifier les valeurs des paramètres en utilisant la liaison des paramètres positionnels et les types de données des paramètres exacts. Si vous devez laisser inchangé le type de données d'un paramètre, placez ftUnknown dans l'élément de tableau correspondant au paramètre.

Quand une application doit exécuter la même commande SQL plusieurs fois, ce qui peut normalement définir la propriété SQL, appelez Prepare avant d'appeler Open pour la première fois, puis utilisez une version Open sans spécifier ASQL.

Utilisez ResourceOptions.CmdExecMode pour contrôler le mode d'exécution asynchrone et 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 TFDAdaptedDataSet.AbortJob. Quand un SGBD renvoie une erreur, FireDAC déclenche une exception. Pour de plus amples détails, voir Gestion des erreurs. Dans le cas de valeurs de chaînes longues et d'erreurs telles que :

 [FireDAC][Phys][ODBC]-345. Data too large for variable [P]. Max len = [8002], actual len = [18329]

vous devez spécifier ftMemo ou ftBlob pour le paramètre ('P') correspondant. Autrement, utilisez l'appel Open et configurez les types de données des paramètres séparément.

Exemple

 
 //Example 1:
 FDQuery1.Open('select * from customers');
 
 //Example 2:
 FDQuery1.Open('select * from Employees where department_id = :id', [100]);
 ....
 FDQuery1.Open('', [101]); // executes the above SQL command, but for ID = 101
 
 //Example 3:
 FDQuery1.Open('select * from Employees where department_id = :id', [100], [ftInteger]);

Voir aussi