J'utilise des unités TADOConn et TADODataSet tirant des données et connectées à TDataSources et TDBGrids. Mes DBGrids affichent correctement les informations et les informations d'édition dans la vue détaillée sont correctement reflétées dans la base de données de sauvegarde. Ce que je voudrais faire est de le faire afin qu'une mise à jour à un champ dans le détail DBGrid provoque une actualisation sur les deux ensembles de données afin que les données les plus à jour soient toujours affichées.Mise à jour de DBGrids dans les vues Master-Detail lors de la mise à jour des cellules dans Delphi
J'ai essayé de placer les appels d'actualisation dans plusieurs gestionnaires d'événements à différents niveaux d'accès à la base de données, mais ils semblent tous avoir un problème de réentrée similaire (mais différent).
Le meilleur que j'ai pu faire jusqu'à présent est de mettre à jour l'affichage maître en appelant l'actualisation de l'événement DBGrid.onColExit de détails.
Si je quitte l'actualisation des appels tous ensemble les informations mises à jour ne sont pas affichées jusqu'à la prochaine exécution de l'application.
Des idées sur la façon d'y parvenir? Est-ce que je vais à ce sujet le mauvais pourquoi? Merci d'avance.
Cela pourrait fonctionner, je vais essayer. La seule chose que je vois comme étant un problème est que quel que soit l'endroit où je place un retard, il sera toujours dans le même thread d'exécution qui a le problème de ré-entrant. Je posterai avec quelques résultats. – dpsthree
L'un des objectifs de la minuterie est de briser la chaîne d'exécution qui pourrait entraîner des problèmes de rentrée. L'autre but est de permettre à d'autres choses de se produire avant l'actualisation, ce qui peut réduire le nombre d'actualisations nécessaires. – crefird
Pas de chance, puisque la minuterie doit être déclenchée quelque part dans la chaîne du gestionnaire d'événements, nous retardons l'inévitable. La seule solution que j'ai pu trouver est un bouton de mise à jour autonome qui rafraîchit les deux ensembles de données indépendamment. – dpsthree