Bonjour,
Sur un Double-click sur une ligne d'un DBGrid (nommé "DBGridEleveSelectionnes") je cherche à mettre à jour
le champ "DansT" de la table que le DBgrid affiche avec
le code donné dans ce message. Le Dataset du DBGrid
est filtré avec "DansT = True" pour n'afficher que les
champ ayant un "DansT" true. Donc sur un double-click
le champ "DansT" de la ligne correspondante est positionné à False
et au rafraichissement suivant du DbGrid la ligne
n'est plus affichée.
Tout fonctionne bien excepté pour le dernier enregistrement: quand
je cherche à le supprimer j'ai une exception "EOleException" avec le
message "BOD ou EFO égal à True ou l'enregistrement actuel a été
supprimé. L'opération demandée nécessite un enregistrement actuel".
J'ai toujours autant de mal à comprendre la logique
des pointeurs sur champs de dataset mais bon, je
me suis fais une raison, ça doit être congénital.
Si quelqu'un pouvait m'éclairer je lui en serait reconnaissant !
Eric
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 with DBGridEleveSelectionnes.DataSource.DataSet do for i:=0 to DBGridEleveSelectionnes.SelectedRows.Count-1 do begin GotoBookmark(pointer(DBGridEleveSelectionnes.SelectedRows.Items[i])); DBGridEleveSelectionnes.DataSource.DataSet.Edit; DBGridEleveSelectionnes.DataSource.DataSet.FieldValues['DansT']:=False; DBGridEleveSelectionnes.DataSource.DataSet.Post; end;
Partager