Problème de refresh DBGrid

burnx22 Messages postés 9 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 1 novembre 2008 - 14 oct. 2008 à 03:02
cs_kaboum Messages postés 31 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 8 juillet 2010 - 20 oct. 2008 à 08:48
Bonjour,
J'ai un DBGrid qui affiche le contenu d'une table. J'ai un bouton qui supprime le contenu de la table affiché et qui le recrée selon une sélection de combo box...
Bref, lorsque je démarre l'application., l'nformation est affiché dans la grille et lorsque je clic sur mon bouton, la grille ce met à blanc, même s'il y a de l'information dans la table. J'ai remarqué que lorsque je suis en débuggeur, tout juste après la suppression de la table, la grille est remplit correctement....
Pourquoi est-ce que la grille ne se remplit pas correctement lorsque je ne suis pas en débuggeur  ?
Est-ce un problème de refresh.... ???

Merci

10 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
14 oct. 2008 à 19:47
bonsoir,

J'ai un DBGrid qui affiche le contenu d'une table...
..Pourquoi est-ce que la grille ne se remplit pas correctement lorsque je ne suis pas en débuggeur  ?
Est-ce un problème de refresh.... ???

je ne comprends pas bien..

cantador
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
15 oct. 2008 à 08:45
Bonjour,

Moi non plus... Quelle type de base de données utilises-tu ?

Simon
0
cs_kaboum Messages postés 31 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 8 juillet 2010
15 oct. 2008 à 12:11
Bonjour,

l'action du chargement de tes données et fait sur le onchange de ton combo ?
ton bouton vide la grille de quelle manière ?
quand tu clique sur ton bouton ,ta fonction rappelle le chargement chargement de tes  données ?
c est quoi comme type de connexion ado bde ?

Quand tu est en mode debug cela ne devrait avoir aucune incidence sur le comportement de l'application .

kaboum
0
burnx22 Messages postés 9 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 1 novembre 2008
18 oct. 2008 à 02:26
Je ré-explique :

J'utilise une connection ADO. Lorsque je sélectionne un item dans un combo box et que je clic sur un bouton, je veux que des données provenant d'une table s'affiche dans une grille.

Ce que le bouton fait : Il supprime les enregistrement de la table X et ré-insère de l'information selon la sélection faite dans le combo box et est ensuite affiché dans la DBGrid.

Lorsque par exemple, je démarre l'application et que la table X contenait des données de la dernière utilisation, elles sont correctement affichés. Lorsque le clic sur le bouton avec la sélection du combo box différente, la grille devient vide, mème s'il y a de l'information dans la table X. Lorsque je vide ma table, je met le Datasource associé à ma grille inactive et lorsque la nouvelle information à remplit la table X, je met le Datasource actif.

Pour le cas du débug, j'ai déjà vu des cas ou l'information n'était pas rafraichit a moins de faire une commande de refresh dans le code....je crois, à moins de minimiser la fenêtre de l'application et de la restaurer...cela provoque un refresh automatique....

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
burnx22 Messages postés 9 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 1 novembre 2008
18 oct. 2008 à 07:04
Bonjour,

Je reformule d'une façon très simple :

J'utilise un dbgrid pour afficher une table via ADO et a chaque fois que j'insère ou modifie une donnée, le dbgrid ne se rafraichi pas et je suis obliger de relancer le programme pour que le dbgrid se mette a jour.
J'ai deja essayé de mettre dbgrid.refresh mais ca ne marche pas.
Que dois-je faire?
Merci d'avance
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
18 oct. 2008 à 13:25
J'ai deja essayé de mettre dbgrid.refresh mais ca ne marche pas.


Essaie de rafraîchir le Query associé au Grid.

cantador
0
burnx22 Messages postés 9 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 1 novembre 2008
18 oct. 2008 à 16:30
Ça ne fonctionne pas :(
0
burnx22 Messages postés 9 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 1 novembre 2008
18 oct. 2008 à 17:06
Avec un TQuery, ca fonctionne, mais je ne suis pas capable de modifier mon dbgrid, comme par exemple changer de couleur entre chaque ligne ou de modifier la hauteur de ma ligne...

Avec un ADOQuery je suis en mesure de changer les couleur de mes lignes dans le DBgrid, mais l'information ne ce met pas à jour. J'utilise l'évênement : OnDrawColumnCell pour changer les couleurs, mais lorsque j'utilise cette évênement avec un TQuery, le RecNo de mon Dataset est toujours -1, donc je ne peux pas savoir à quel ligne je suis rendu.....

Merci d'avance.
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
18 oct. 2008 à 17:36
En fait tu as plusieurs difficultés en même temps..
sont-elles toutes liées ? pas sûr.
TQuery et ADOQuery ont des propriétés différentes.
pas facile de régler ton souci sans le code..

cantador
0
cs_kaboum Messages postés 31 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 8 juillet 2010
20 oct. 2008 à 08:48
bon sans pouvoir lire la partie de ton code qui semble te poser problème
ça vas être difficile de t'aider.

si tu utilise un ado query fait tu un exec ou un open
etc...
pour ma part on peut continuer à te poser 20 milles question jusqu'a mettre le doigt sur le problème
sinon tu peux peut etre nous montrer le code que tu exécute lors du choix de ta combo.

sinon je ne vois pas le rapport avec les couleurs des ligne d'un dbgrid et,  un tquery et un adoquery.

La je veux bien une explication car je ne pense pas que l'on les utilise de la même maniére

kaboum
0
Rejoignez-nous