Bonjour à tous.
J'ai un problème un peu particulier que je rencontre chez l'un de mes clients. J'ai un peu de mal à le résoudre car ce problème est aléatoire et je n'arrive pas à la reproduire. ça fait plusieurs jours que je suis dessus sans pouvoir en identifier la cause. J'ai malheureusement très peu d'indice mais je vais essayer d'expliquer au mieux les symptômes. Peut-être qu'ils parleront à l'un de vous.
Je développe sous Delphi7 et je me connecte à nos bases de données SQL Server via les composant Unidac. Mon client utilise SQL Server 2012. Les utilisateurs se connectent à notre application via Citrix (je ne sais pas si ça a une influence mais sait-on jamais).
J'utilise un composant "TUniTable" lié à un composant "TUniDataSource" pour afficher le contenu d'une table dans des composants "TDBGrid" ou "TDBText".
Lors de l'ouverture de mon élément, tout se passe bien, l'affichage est correcte :
Mon client effectue ensuite quelques opérations :
- Ouverture d'une fenêtre "Modal" développée dans une DLL externe
- Dans cette fenêtre on effectue différents calculs qui modifie certaines valeurs de la table.
- Fermeture de la fenêtre
- On effectue un "MaUniTable.Refresh" afin de récupérer les bonnes valeurs (Celles calculées par la DLL)
A la fin du processus, la table contient des valeurs bizarres :
A ce moment-là, si je vais consulter le contenu de la table directement dans la BDD, les données sont correctes, je n'ai pas ces caractères spéciaux affichés. De plus, dès que l'on fait une opération de rafraîchissement de cette table, ou si on l'édite pour modifier des données par exemple, l'affichage est à nouveau correcte.
Une information également importante, dans la modification des données réalisée par la DLL, je ne modifie en aucun cas les champs qui s'affichent bizarrement. les modifications portent sur d'autres champs.
Sur la 2ème image, la couleur rose des cellules n'est qu'un effet de bord de mon problème.
Je soupçonne le "Refresh" de poser problème quelque part mais je suis un peu perdue.
Quelqu'un a-t-il déjà rencontré ce genre de problème? Si oui par où est-ce que je peux commencer d'investiguer?
Merci d'avance de votre aide.
LaNono
Partager