Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Rafraichissement DBGRID [ Divers / Aide et documentation ] (Sat83)

jeudi 19 juin 2008 à 12:01:01 | Rafraichissement DBGRID

Sat83

Bonjour,

J'ai une petite question concernant le rafraichissement de mon DBGRID...

Mon DBGRID contient plusieurs centaine de lignes.

Lorsqu'une ligne est sélectionné, il est possible de la modifié en cliquant sur un bouton modifié. ( Une fois valider, j'utilise un TQuery pour faire un Update de cette ligne dans la base).

Une fois cette modification effectuée, je veut rafraichir mon DBGRID, et donc pour le Dataset lié je fais :

MyDataSet.Active := false ;
MyDataSet.Active := true ;


Là mon DBGRID se remet bien a jour, le problème c'est qu'il revient tout en haut sur le premier enregistrement (normal).

Je souhaiterais savoir comment faire pour revenir à la ligne qui était sélectionnée avant le rafraichissement.

Merci d'avance

jeudi 19 juin 2008 à 12:14:53 | Re : Rafraichissement DBGRID

Sat83

Réponse acceptée !
J'ai trouvé une solution qui fais presque l'affaire en utilisant GetBookMark , GotoBookmark et FreeBookmark.

Ca marche nickel si ce n'est que la ligne où je me trouvais avant le rafraichissement se retrouve centrée au mileu du DBGRID.

Si quelqu'un a la solution pour se retrouver exactement a la même position (même ligne + même position dans le DBGRID) je suis preneur.

En attendant je me satisfait de cette solution....



jeudi 19 juin 2008 à 19:02:21 | Re : Rafraichissement DBGRID

cantador

Membre Club
Salut Sat83,

J'ai trouvé une solution qui fais presque l'affaire en utilisant..

Elle fait complétement l'affaire si ton bookmark est bien écrit, bien placé et bien vidé.


cantador

vendredi 20 juin 2008 à 09:24:09 | Re : Rafraichissement DBGRID

Sat83

J'ai simplement fais :

-----------------------------------------
var bm : TBookmark;

bm := myQuery.GetBookMark;
[...]
myQuery.Active := false ;
myQuery.Active := true;

myQuery.GotoBookmark(bm);
myQuery.FreeBookmark(bm);
-----------------------------------------


Et là dans mon DBGRID je me retrouve effctivement positionné sur la bonne ligne, mais toujours centré sur le DBGRID.


vendredi 20 juin 2008 à 10:30:04 | Re : Rafraichissement DBGRID

cantador

Membre Club
Attention le bookmark est un pointeur..

essaie cette solution :

var
bm : TBookmark;


[...]


try
     screen.cursor := CrHourGlass;
     myQuery.disableControls;
   try
        begin
          myQuery.GotoBookmark(bm);
          myQuery.FreeBookmark(bm);
          bm := nil;
        end;
  except
        myQuery.EnableControls;
        bm:= nil;
        exit;
   end;
finally
  myQuery.EnableControls;
  screen.cursor := CrDefault;
end;


cantador

vendredi 20 juin 2008 à 10:48:36 | Re : Rafraichissement DBGRID

Sat83

J'ai ajouter les DisableControls avant et EnableControls après, mais j'ai toujours le même comportement...

samedi 21 juin 2008 à 13:30:00 | Re : Rafraichissement DBGRID

cantador

Membre Club
Réponse acceptée !
il te faut un index primaire(clé) dans la table, sinon le grid se cale au milieu de celle-ci.
et dans ce cas, le dbgrid en cas de modif ne bouge pas !
il reste naturellement sur l'enregistrement sélectionné et à la même position
du grid.

le bookmark lui ne s'aoccupant que du calage de l'enregistrement, pas du
grid.


cantador



Cette discussion est classé dans : ligne, dbgrid, mydataset, rafraichissement, modifié


Répondre à ce message

Sujets en rapport avec ce message

Rafraichissement de données ! [ par Technoman ] Je rajoute un enregistrement dans une table. A cote se situe un DBGRid, je fais pourtant un "Refresh" apres mon ajout mais le DBGrid n' est pas rafrai Ajout de ligne sur DBGrid [ par webazard ] Bonjour, Voila je commence tout juste sur dephi et je voudrais savoir comment ajouter de lignes dans un DBGrid ou me dire quoi d'autre utiliser, mon s Recherche dans un DBgrid [ par Servalito ] Voila j'aimerais savoir comment d^placer le curseur de selection d'un DBgrid sans cliquez dessus.Plus simple passer d'une ligne a une autre simplement afficher le nombre de ligne d'une DBGRID [ par chriszz ] Salut, je voudrais savoir comment dans un premier temps, compter le nombre de ligne de ma DBGRID (connaitre combien j'ai d'entrées) et secundo, affich DBGrid : selection automatique d'une ligne [ par trigoutte ] Sous delphi7, est-il possible de sélectionner une ligne dans un DBGrid. Je n'arrive pas à trouver un truc du genre: dbgrid.dataset[5].select<i positionnement sur une ligne d'un Dbgrid [ par lguez ] comment met t'on la sélection sur une ligne d'un DBgrid par programme? Image dans la ligne de titre d'un DBGrid [ par rolea ] Je cherche un moyen d'afficher une image dans la ligne de titre d'un DBGrid.Exemple, je fais une requête avec un tri, et je veux ensuite afficher une dbgrid : comment avoir la ligne? URGENT. [ par shakeoff1 ] voila, je viens de débuter en programmation delphi et je dois travailler sous bases de données; dans un de mes programmes, je dois (quand je sélection Connaitre le nombre de ligne ds un dbgrid [ par jimmy69 ] Bonjour a tous,Je liste ma base de donnees a l'aide d'un dbgrid et j'aimerais savoir s'il etait possible de recuperer le nombre de ligne que j'ai et d Séléctionner une ligne dans DBGRID [ par sosososo ] Bonjour,J'ai un problème pour seléctionner une ligne dans DBGRID que je viens d'insérer dans la base (CAD: Quand je fais le refresh dans dataset/dbgri


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,577 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.