Bonsoir
Comment Rafraîchir les données alternatives post
Bonsoir
Comment Rafraîchir les données alternatives post
Bonjour,
Close/Open est le plus simple. Pour éviter le scintillement, on encadre généralement ça d'un bloc Disablecontrols/EnableControls
PS. Avec Firedac c'est légèrement plus court à écrire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ADoQuery1.Disablecontrols; ADoQuery1.Close; ADoQuery1.Open; ADoQuery1.Enablecontrols;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 FQuery1.Disablecontrols; FDQuery1.Open(''); FDQuery1.Enablecontrols;
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Le problème est que quand je fais une prévisualisation sur l'état où j'ai inséré des données dans tbl1, l'affichage ne se fait qu'après fermeture/ouverture de mon programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Begin Datamodule1.Adorable1.append ; Datamodule1.Adorable1.post End.
Franchement, dans votre première question vous auriez dû être largement plus explicite !
Même si j'avais encore en mémoire vos questions concernant le fait que vous utilisiez ADO j'vais garder en tête le fait que vous utilisiez une ADOQuery
Qu'est-ce que vous n'avez pas saisi dans le fait qu'il fallait faire un close/open après le post et qu'il n'y avait qu'à transposé à votre cas particulier
Il existe peut-être aussi une instruction Refresh qui exécute le Close/Open.
Le fait que je déteste ADO et donc ne l'ait même pas installé n'arrange rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Begin Datamodule1.Adorable1.append ; Datamodule1.Adorable1.post; Datamodule1.Adorable1.DisableControls; Datamodule1.Adorable1.Close; Datamodule1.Adorable1.Open; // ou Datamodule1.Adorable1.Refresh s'il existe Datamodule1.Adorable1.EnableControls; End.
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Attention avec un Close/Open, on perd la position du curseur, si c'est important de conserver la position, il faut mémoriser les ID puisque éventuellement faire un Locate, sachant que si un DBGrid est associé malgré le DisableControls/EnableControls, le premier enregistrement visible ne sera pas le même, forcer un défilement est possible mais pas aisé.
Curieux, on dirait un problème de FlushBuffer mais normalement c'est BDE et non sur ADO ça
Faudrait regarder les combinaisons de CursorType et CursorLocation voire même LockType pour vérifier que vous n'êtes pas en mode mises à jour groupées qui requiert donc l'utilisation de UpdateBatch, je connais un peu ADO sur SQLServer mais pas du tout sur ACCESS, j'ignore ce que cela supporte ou non.
Utiliser des TADOTable est toujours un piège, vous devriez plutôt utiliser des TADOQuery avec SQL pour lire SELECT et pour écrire UPDATE/INSERT et songer à utiliser SQL Server Developper Edition car ACCESS n'est pas une solution pour y construire un logiciel autour, faut rappeler que ACCESS fait parti d'une suite bureautique et n'a pas la prétention d'être un SGBD, surtout que ACCESS permet de faire ses propres formulaires pour une utilisation strictement monoposte de petite application interne.
Je n'évoquerais même pas les Transaction car je ne crois pas que ça existe en ACCESS et que ADO est AutoCommit par défaut.
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager