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

Bases de données Delphi Discussion :

Probleme de rafraichissement d'un BDGrid


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2002
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Probleme de rafraichissement d'un BDGrid
    Bonjour,

    J'ai une liste de personne dans un DBGrid qui correspond donc à une table "personnes" dans une base de données Interbase. Je propose à l'utilisateur d'ajouter ou de supprimer des personnes à partir de cette liste.

    Lorsque je fais une suppression, la mise à jour de l'affichage se fait bien.

    Dans le OnActivate de la form qui contient le DBGrid, je ferme puis je réouvre la requete qui le rempli.

    Lorsque je veux ajouter une personne, j'ouvre une fenetre de saisie et à la fermeture de cette fenetre, je redonne le focus à la précédente, l'événement OnActivate se déclenche bien mais l'affichage n'est pas rafraichit !
    Si je clique à coté de la fenetre du DBGrid puis que je reclique dessus l'affichage se rafraichit !!!
    Ce n'est pas très ergonomique, j'aimerai éviter de faire un bouton "rafraichir"...

    Je comprend plus rien, oscour !


    (J'utilise Delphi 5 professionnel)
    Gwen

  2. #2
    Membre du Club Avatar de rabi
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 47
    Points
    47
    Par défaut
    essaye de faire un refresh table soit en direct(a la fin de ta commande ajout) soit sur l'ouverture de ta fenetre ou se trouve ton dbgrid(tout depend de la table que tu utilise ds ta fenetre de saisie de donnees.

    je pense que c'est ca
    j'ai pas tout compris a delphi mais ca devient bon.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2002
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    J'utilise un composant IBQuery pour remplir mon DBGrid (avec un DataSource entre les deux bien sur )

    Alors, dans le Form1.formActivate je fais
    IBQuery1.close;
    IBQuery1.open;

    Et le rafraichissement est immédiat quand il s'agit d'une suppression, mais pas pour une insersion,
    alors que notez bien, la procedure formActivate est bien déclenchée dans les deux cas (j'ai vérifié avec une message box)

    J'ai esayé de mettre à la place
    IBQuery1.refresh;
    mais alors j'ai un message d'erreur : 'Impossible d'effectuer cette opération sur un ensemble de donnée fermé'
    Gwen

  4. #4
    Membre du Club Avatar de rabi
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 47
    Points
    47
    Par défaut
    met ta table en mode edition ou insertion



    je ne connais pas les ibquery pas vu encore mais bon d'apres ce que je vois ca se comporte comme un ttable .

    donc essaie ca

    IBquery1.edit ou IBquery1.insert
    j'ai pas tout compris a delphi mais ca devient bon.

  5. #5
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par marmotte
    J'ai esayé de mettre à la place
    IBQuery1.refresh;
    mais alors j'ai un message d'erreur : 'Impossible d'effectuer cette opération sur un ensemble de donnée fermé'
    Salut,

    Y'a vraiment des Bugs dans delphi, je pense...

    Est-ce que tu as essayé de faire un .Requery(); ??

    -> Kerv.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 70
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    Non, il n'y a pas de bugs avec Delphi .

    L'utilsiation des composants d'un TQuery est un peu différent qu'un TIBQuery.

    De un, si tu débutes ton code utilises un TIBDataset ou un TIBSql. Beaucup plus performant.

    Pour rafraichir ta base de données, tu dois faie un close et un open ensuite.

    Le refresh va seulement rafraichir la ligne en cours.

  7. #7
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Dihap
    Bonjour,
    Non, il n'y a pas de bugs avec Delphi .
    L'utilsiation des composants d'un TQuery est un peu différent qu'un TIBQuery.

    Ok, c'est noté ! Merci de l'info !!

    -> Kerv.

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Mai 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    j'arrive un peu tard mais c pas grave !!!

    pour le rafraichissement, il faut que tu fasse un refresh de ta table

    lors du onactivate, ou alors a la fin de ta procedure d'ajout

  9. #9
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 103
    Points : 87
    Points
    87
    Par défaut
    boo (PG ?) a raison

  10. #10
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Salut,

    Je manipule justement des DBGrid et des TIBQuery donc je te dis comment je fais:

    1. Tu fais un "commit" sur la transaction apres l'enregistrement de la personne
    2. Tu desactive et reactive la transaction te donnant l'affichage dans ta DBGrid
    3. Tu réactives ta DBGrid

    Bon courage.

    Jimmy

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 66
    Points : 78
    Points
    78
    Par défaut
    Beaucoup de personnes ont le probléme de rafraichissement des DbGrid, et chaque méthode de rafraichissement n'est pas générale et j"ai remarwqué dans ce cas les gens procedent uniquement par tatonnement. Pour moi le probléme de rafraichissement se pose réellement avec delphi et qu'il faut chercher le probléme ailleurs.

Discussions similaires

  1. [JLabel] probleme de rafraichissement
    Par zorm dans le forum Composants
    Réponses: 3
    Dernier message: 14/11/2005, 07h30
  2. [Image] Probleme de rafraichissement
    Par leyee dans le forum 2D
    Réponses: 4
    Dernier message: 31/10/2005, 23h26
  3. Probleme de rafraichissement Fenetre Win32 ...
    Par miaw dans le forum OpenGL
    Réponses: 1
    Dernier message: 09/05/2005, 09h59
  4. Probleme de rafraichissement
    Par glRaZ dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/03/2004, 15h07
  5. [MFC] probleme de rafraichissement d'une image
    Par Vestaproman dans le forum MFC
    Réponses: 6
    Dernier message: 10/01/2004, 00h59

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