Edition des données affichées dans un contrôle

De RAD Studio
Aller à : navigation, rechercher

Remonter à Edition et mise à jour des données


Un contrôle de données ne peut valider les modifications dans son ensemble de données associé que si la propriété CanModify de l'ensemble de données vaut True. CanModify vaut toujours False pour les ensembles de données unidirectionnels. Certains ensembles de données possèdent une propriété ReadOnly qui permet de spécifier si CanModify vaut True.

Remarque :  La possibilité pour un ensemble de données de mettre à jour des données dépend de la table de base de données sous-jacent.

Même si la propriété CanModify de l'ensemble de données vaut True, la propriété Enabled de la source de données qui connecte l'ensemble de données au contrôle doit également valoir True afin que le contrôle puisse valider les mises à jour dans la table de base de données. La propriété Enabled de la source de données détermine si le contrôle peut afficher les valeurs de champ à partir de l'ensemble de données et, par conséquent, si un utilisateur peut modifier et valider les valeurs. Si Enabled vaut True (valeur par défaut), les contrôles peuvent afficher les valeurs de champ.

Enfin, vous pouvez même déterminer si l'utilisateur peut apporter des modifications aux données affichées dans le contrôle. La propriété ReadOnly du contrôle de données détermine si un utilisateur peut modifier les données affichées par le contrôle. Si elle vaut False (valeur par défaut), les utilisateurs peuvent modifier les données. Il est logique d'appliquer d'office à la propriété ReadOnly du contrôle la valeur True lorsque la propriété CanModify de l'ensemble de données a pour valeur False. Sinon, vous donnez aux utilisateurs la fausse impression qu'ils peuvent affecter les données de la table de base de données sous-jacente.

Dans tous les contrôles orientés données, à l'exception de TDBGrid, les modifications d'un champ sont copiées dans l'ensemble de données sous-jacent quand vous appuyez sur Tab depuis le contrôle. Si vous appuyez sur la touche Echap avant d'appuyer sur Tab dans un champ, les modifications sont abandonnées et le champ reprend sa valeur initiale.

Avec le composant Vcl.DBGrids.TDBGrid, les modifications sont validées au moment où vous passez à un enregistrement différent ; vous pouvez appuyer sur Echap dans n'importe quel champ d'un enregistrement avant de passer à un autre enregistrement pour annuler une modification.

Lorsqu'un enregistrement est écrit, Delphi vérifie si le statut des contrôles orientés données associés à l'ensemble de données a été modifié. En cas de problème de mise à jour d'un champ contenant des données modifiées, Delphi provoque une exception et aucune modification n'est apportée à l'enregistrement.

Remarque :  Si votre application place les mises à jour en mémoire cache (par exemple, à l'aide d'un ensemble de données client), toutes les modifications sont écrites dans un cache interne. Ces modifications ne sont pas appliquées à la table de base de données sous-jacente tant que vous n'appelez pas la méthode ApplyUpdates de l'ensemble de données.

Voir aussi