J'ai fait face à une situation très étrange ici. J'accède à la base de données (MDB) via JET. J'utilise DBGrid et DBNavigator pour permettre à l'utilisateur d'y accéder. Le jeu de données est créé à l'aide du composant TADOQuery, avec la requête suivante:Mauvais résultat après l'actualisation de DbNavigator Delphi
SELECT *, (DateDiff ('y',[Birth Date], Now())) AS [Age] FROM TableName
Cela fonctionne correctement. Mais chaque fois que j'appuie sur le bouton Actualiser sur DBNavigator, le résultat de ce champ calculé devient erroné. Par exemple, si normalement j'ai 7 montré sur la colonne d'âge, après que j'appuie Refresh il devient 40149, 7 changements à 40149, 6 changements à 40150, 0 à 40156 etc. Afin d'afficher le résultat correct je dois rouvrir la question encore .
Quelqu'un peut-il aider?
C'est ce que je première pensée et j'ai essayé cela. Ça n'a pas marché. Lancer et erreur ADO lorsque vous utilisez CINT lorsque vous actualisez avec dbnavigator. Et la fonction INT ne fait rien parce que 40149 est un INT ... – Pmax
Seulement parce que la date a été entrée sans un temps. La structure interne est toujours un flottant, donc l'int est nécessaire. J'ai édité ma réponse et ajouté une autre manière en utilisant un champ calculé Delphi qui fonctionne correctement. – skamradt