Gestion des paramètres de commande

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation d'objets commande

Un objet TADOCommand peut utiliser des paramètres de deux façons :

  • La propriété CommandText peut spécifier une requête qui comprend des paramètres. L'utilisation de requêtes paramétrées dans TADOCommand s'apparente à celle d'une requête paramétrée dans un objet ADO.
  • La propriété CommandText peut spécifier une procédure stockée qui utilise des paramètres. Les paramètres de procédure stockée s'utilisent avec TADOCommand de la même façon qu'avec un ensemble de données ADO.

Lorsque vous utilisez TADOCommand, vous pouvez indiquer les valeurs de paramètres de deux façons : en les fournissant au moment d'appeler la méthode Execute ou, à l'avance, en les définissant par le biais de la propriété Parameters.

La méthode Execute est redéfinie dans des versions qui acceptent un ensemble de valeurs de paramètres sous la forme d'un tableau Variant. Cela permet de fournir des valeurs de paramètres rapidement sans définir la propriété Parameters :

ADOCommand1.Execute(VarArrayOf([Edit1.Text, Date]));
Variant Values[2];
Values[0] = Edit1->Text;
Values[1] = Date();
ADOCommand1.Execute(VarArrayOf(Values,1));

Lorsque vous utilisez des procédures stockées qui renvoient des paramètres de sortie, vous devez recourir à la propriété Parameters. Même si vous n'avez pas besoin de lire les paramètres de sortie, la propriété Parameters peut s'avérer utile car elle vous permet de fournir les paramètres à la conception et d'utiliser les propriétés de TADOCommand de la même façon que les paramètres des ensembles de données.

Lorsque vous définissez la propriété CommandText, la propriété Parameters est automatiquement mise à jour pour refléter les paramètres de la requête ou ceux utilisés par la procédure stockée. A la conception, vous pouvez utilise l'éditeur de paramètres pour accéder aux paramètres en cliquant sur le bouton points de suspension de la propriété Parameters dans l'inspecteur d'objets. A l'exécution, utilisez les propriétés et méthodes de TParameter pour spécifier ou connaître la valeur de chaque paramètre.

with ADOCommand1 do begin
  CommandText := 'INSERT INTO Talley ' +
    '(Counter) ' +
    'VALUES (:NewValueParam)';
  CommandType := cmdText;
  Parameters.ParamByName("NewValueParam").Value := 57;
  Execute
end;
ADOCommand1->CommandText = "INSERT INTO Talley ";
ADOCommand1->CommandText += "(Counter) ";
ADOCommand1->CommandText += "VALUES (:NewValueParam)";
ADOCommand1->CommandType = cmdText;
ADOCommand1->Parameters->ParamByName("NewValueParam")->Value = 57;
ADOCommand1->Execute()


Voir aussi