amir_kebaili
Messages postés1Date d'inscriptionlundi 9 décembre 2013StatutMembreDernière intervention 9 décembre 2013 9 déc. 2013 à 09:59
merci
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 2 nov. 2010 à 15:59
Exactement!
Delphian
Messages postés3Date d'inscriptionmardi 2 novembre 2010StatutMembreDernière intervention 2 novembre 2010 2 nov. 2010 à 15:55
Autant pour moi... je n'avais effectivement pas bien lu l'énoncé. En gros, tu "recadres" la ligne courante dans le buffer du dataset pour éviter un éventuel changement de position de la ligne dans la grille après rafraichissement. Bien vu...
Merçi.
@+
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 2 nov. 2010 à 14:31
Salut,
je me cite :
"Pour ceux qui utilisent les SGBD client/serveur, l' un des problèmes rencontrés est que lorsque l' on veut actualiser les données d' une table, on doit forcément réexecuter le query (select * from ...) ce qui implique la fermeture de la table.
Cela a pour conséquence que la DBGrid oú l' on visualise les données, n' est plus positionnée sur le bon enregistrement. Quand bien même on utiliserait GetBookmark/GotoBookmark/FreeBookmark, l' enregistrement peut ne plus se trouver sur la même ligne de la DBGrid, ce qui estétiquement n' est pas terrible ..."
La ligne importante est celle-ci:
"Quand bien même on utiliserait GetBookmark/GotoBookmark/FreeBookmark, l' enregistrement peut ne plus se trouver sur la même ligne de la DBGrid, ce qui estétiquement n' est pas terrible ..."
A+
Delphian
Messages postés3Date d'inscriptionmardi 2 novembre 2010StatutMembreDernière intervention 2 novembre 2010 2 nov. 2010 à 14:24
Ooops... petite correction:
ABookmark := ADataset.GetBookmark;
ADataset.DisableControls;
try
ADataset.Close;
ADataset.Open;
if ADataset.BookmarkValid(ABookmark) then ADataset.GotoBookmark(ABookmark);
finally
ADataset.EnableControls;
end;
Delphian
Messages postés3Date d'inscriptionmardi 2 novembre 2010StatutMembreDernière intervention 2 novembre 2010 2 nov. 2010 à 14:14
Bonjour...
N'est ce pas la même fonctionnalitée que les méthodes "DisableControls" et "EnableControls" de la classe TDataset?
Exemple:
ABookmark := ADataset.GetBookmark;
ADataset.DisableControls;
try
ADataset.Close;
ADataset.Open;
if BookmarkValid(ABookmark) then ADataset.GotoBookmark(ADataset);
finally
ADataset.EnableControls;
end;
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 20 oct. 2010 à 10:05
Merci VieuxPère ...
A+
vieuxpere
Messages postés195Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention17 décembre 2014 20 oct. 2010 à 00:00
Bonjour Mauricio,
Enfin un code qui apporte une solution à une contrainte ancienne des compos sgbd sur Delphi.
Jusqu'alors je contournais partiellement le probléme avec un RecNo sans pour autant me retrouver exactement sur la même ligne.
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 15 oct. 2010 à 18:03
9 déc. 2013 à 09:59
2 nov. 2010 à 15:59
2 nov. 2010 à 15:55
Merçi.
@+
2 nov. 2010 à 14:31
je me cite :
"Pour ceux qui utilisent les SGBD client/serveur, l' un des problèmes rencontrés est que lorsque l' on veut actualiser les données d' une table, on doit forcément réexecuter le query (select * from ...) ce qui implique la fermeture de la table.
Cela a pour conséquence que la DBGrid oú l' on visualise les données, n' est plus positionnée sur le bon enregistrement. Quand bien même on utiliserait GetBookmark/GotoBookmark/FreeBookmark, l' enregistrement peut ne plus se trouver sur la même ligne de la DBGrid, ce qui estétiquement n' est pas terrible ..."
La ligne importante est celle-ci:
"Quand bien même on utiliserait GetBookmark/GotoBookmark/FreeBookmark, l' enregistrement peut ne plus se trouver sur la même ligne de la DBGrid, ce qui estétiquement n' est pas terrible ..."
A+
2 nov. 2010 à 14:24
ABookmark := ADataset.GetBookmark;
ADataset.DisableControls;
try
ADataset.Close;
ADataset.Open;
if ADataset.BookmarkValid(ABookmark) then ADataset.GotoBookmark(ABookmark);
finally
ADataset.EnableControls;
end;
2 nov. 2010 à 14:14
N'est ce pas la même fonctionnalitée que les méthodes "DisableControls" et "EnableControls" de la classe TDataset?
Exemple:
ABookmark := ADataset.GetBookmark;
ADataset.DisableControls;
try
ADataset.Close;
ADataset.Open;
if BookmarkValid(ABookmark) then ADataset.GotoBookmark(ADataset);
finally
ADataset.EnableControls;
end;
20 oct. 2010 à 10:05
A+
20 oct. 2010 à 00:00
Enfin un code qui apporte une solution à une contrainte ancienne des compos sgbd sur Delphi.
Jusqu'alors je contournais partiellement le probléme avec un RecNo sans pour autant me retrouver exactement sur la même ligne.
15 oct. 2010 à 18:03
http://sourceforge.net/projects/tcycomponents/fi les/Demo/demo3.40.zip/download
À vous ensuite d' installer mes compos ou d' appliquer le code sur votre propre DBgrid ...
A+