Utilisation d'ensembles de données associés

De RAD Studio
Aller à : navigation, rechercher

Remonter à Connexion aux bases de données - Index


Tous les composants connexion de base de données gèrent une liste de tous les ensembles de données qui les utilisent pour se connecter à une base de données. Par exemple, un composant connexion utilise cette liste pour fermer tous les ensembles de données lorsqu'il ferme la connexion à la base de données.

Vous pouvez également utiliser cette liste pour effectuer des opérations sur tous les ensembles de données utilisant un composant connexion spécifique pour se connecter à une base de données particulière.

Fermeture d'ensembles de données sans déconnexion du serveur

Le composant connexion ferme automatiquement tous les ensembles de données lorsque vous fermez sa connexion. Toutefois, les ensembles de données doivent parfois être fermés sans pour autant mettre fin à la connexion au serveur de base de données.

Pour fermer tous les ensembles de données ouverts sans provoquer la déconnexion du serveur, vous pouvez utiliser la méthode CloseDataSets.

Dans le cas de TADOConnection et TIBDatabase, l'appel de CloseDataSets laisse toujours la connexion ouverte. Dans le cas de TDatabase et TSQLConnection, vous devez également attribuer à la propriété KeepConnection la valeur True.

Déplacement parmi les ensembles de données associés

Pour effectuer une opération sur tous les ensembles de données utilisant un composant connexion (autre que leur fermeture), utilisez les propriétés DataSets et DataSetCount. DataSets est un tableau indicé de tous les ensembles de données liés au composant connexion. Pour tous les composants connexion, à l'exception de TADOConnection, cette liste ne comprend que les ensembles de données actifs. TADOConnection répertorie également les ensembles de données inactifs. DataSetCount représente le nombre d'ensembles de données dans le tableau.

Remarque :  Lorsque vous utilisez un ensemble de données client spécialisé pour placer les mises à jour en mémoire cache (par opposition à l'ensemble de données client générique TClientDataSet), la propriété DataSets comprend l'ensemble de données interne détenu par l'ensemble de données client, non celui-ci.

Vous pouvez utiliser DataSets avec DataSetCount pour effectuer un cycle sur tous les ensembles de données actuellement actifs depuis votre code. Par exemple, le code suivant parcourt tous les ensembles de données actifs et désactive tous les contrôles qui utilisent les données qu'ils fournissent :

 var
   I: Integer;
 begin
   with MyDBConnection do
   begin
     for I := 0 to DataSetCount - 1 do
       DataSets[I].DisableControls;
   end;
 end;

Remarque :  TADOConnection gère les objets commande ainsi que les ensembles de données. A l'image des ensembles de données, vous pouvez parcourir les objets commande, à l'aide des propriétés Commands et CommandCount.

Voir aussi