Redéfinition de l'ensemble de données sur le serveur d'applications

De RAD Studio
Aller à : navigation, rechercher

Remonter à Transmission de paramètres à l'ensemble de données source

Les ensembles de données client associés à un mécanisme particulier d'accès aux données utilisent les propriétés CommandText et CommandType pour spécifier les données qu'ils représentent. Cependant lorsque vous utilisez TClientDataSet, les données sont spécifiées par l'ensemble de données source, et non par l'ensemble de données client. Habituellement, cet ensemble de données source possède une propriété qui spécifie l'instruction SQL générant les données, le nom d'une table dans la base de données ou le nom d'une procédure stockée.

Si le fournisseur le permet, TClientDataSet peut redéfinir sur l'ensemble de données source la propriété qui indique les données qu'il représente. C'est-à-dire que, si le fournisseur le permet, la propriété CommandText de l'ensemble de données client remplace la propriété sur l'ensemble de données du fournisseur qui spécifie les données qu'il représente. Cela permet au TClientDataSet de spécifier de façon dynamique les données qu'il veut voir.

Par défaut, les composants fournisseur externe ne permettent pas aux ensembles de données client d'utiliser la valeur CommandText de cette façon. Pour permettre à TClientDataSet d'utiliser sa propriété CommandText, vous devez ajouter poAllowCommandText à la propriété Options du fournisseur. Sinon, la valeur de CommandText est ignorée.

Remarque :  Ne supprimez jamais poAllowCommandText de la propriété Options de TBDEClientDataSet ou TIBClientDataSet. La propriété Options de l'ensemble de données client est adressée au fournisseur interne, aussi la suppression de poAllowCommandText empêche l'ensemble de données client d'indiquer à quelles données accéder.

L'ensemble de données client envoie sa chaîne CommandText au fournisseur à deux moments :

  • Quand l'ensemble de données client est ouvert pour la première fois. Une fois que le premier paquet de données est extrait du fournisseur, l'ensemble de données client n'envoie plus CommandText lorsqu'il lit les paquets de données suivants.
  • Quand l'ensemble de données client envoie une commande Execute au fournisseur.

Pour envoyer une commande SQL ou pour changer le nom d'une table ou d'une procédure stockée à un autre moment, vous devez utiliser explicitement l'interface IAppServer par le biais de la propriété AppServer. Cette propriété représente l'interface par laquelle l'ensemble de données client communique avec son fournisseur.

Voir aussi