Bonjour,
J'ai un petit problème avec la gestion des bookmarks des TDBGrids.
Lorsque la ligne qui a été bookmarkée sur l'ADOQuery disparait après son effacement, j'aimerais pouvoir le détecter et ne plus avoir le message d'erreur: "le signet est invalide"
Quelqu'un a-t-il une méthode pour contourner ce probleme?
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 procedure TForm3.SpeedButton3Click(Sender: TObject); var SavePlace: TBookmark; l_sectana_id:integer; begin SavePlace:=nil; try //--------------------------------------- // sauvegarder la position du curseur //--------------------------------------- SavePlace:=ADOQuery1.GetBookmark; //--------------------------------------- l_sectana_id:=ADOQuery1.FieldByName('SECTANA_ID').AsInteger; ADOQuery1.Close; // ici on a du code qui peut ou non effacer la ligne selectionnee //..... // ADOQuery1.Open; //--------------------------------------- // restaurer la position du curseur //--------------------------------------- if (ADOQuery1.RecordCount>0) then begin ADOQuery1.GotoBookmark(SavePlace); // J'ai ici l'erreur si la ligne bookmarkée disparait après la relance de la requete end; finally ADOQuery1.FreeBookmark(SavePlace); end; end;
Partager