begin process at 2010 02 10 10:49:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Aide et documentation

 > 

Rafraichissement DBGRID


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Rafraichissement DBGRID

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ée 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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales