IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Comment éviter les bookmarks invalides avec les TADOQuery


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mars 2003
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 106
    Points : 97
    Points
    97
    Par défaut Comment éviter les bookmarks invalides avec les TADOQuery
    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;

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Tu as la fonction BookmarkValid à ta disposition.

    @+ Claudius

  3. #3
    Membre régulier
    Inscrit en
    Mars 2003
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 106
    Points : 97
    Points
    97
    Par défaut
    Excellent.... MErci Claudius

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/07/2006, 20h55
  2. Réponses: 6
    Dernier message: 18/05/2006, 14h11
  3. Réponses: 1
    Dernier message: 03/05/2006, 10h49
  4. Comment ecrire un charactere 0x00 avec les CFile
    Par barthelv dans le forum MFC
    Réponses: 10
    Dernier message: 12/10/2005, 10h26
  5. Comment bien gerer la mémoire avec les TStringList?
    Par david_chardonnet dans le forum Langage
    Réponses: 5
    Dernier message: 18/06/2003, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo