Exception EOleException incompréhensible
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 !
Code:
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; |
Eric