Chaque nouvel ordinateur de mon entreprise est soumis au même processus d’installation logicielle; un programme en particulier doit accéder à une base de données MS SQL Server via ODBC. Le programme est ensuite utilisé par plusieurs utilisateurs du domaine sur le même ordinateur à des moments différents.
Sur les ordinateurs Windows XP, je configure simplement la connexion ODBC en tant que DSN système . Peu importe l'utilisateur connecté, la connexion fonctionnerait pour lui et mon travail était terminé.
Récemment, nous avons de plus en plus de machines Windows 7, et cette méthode ne semble plus fonctionner. Le programme ne reconnaît pas les connexions que j'ai configurées dans System DSN , mais il les reconnaît dans User DSN . Le problème que j'ai avec ceci est que chaque fois qu'un utilisateur se connecte à un ordinateur pour la première fois, je reçois un appel et j'ai besoin d'installer son propre DSN.
Quelle est la raison pour laquelle cela fonctionne sur XP, mais pas sur 7? Est-ce que je me suis trompé depuis le début?
Mise à jour: Peut-être que la raison n’est pas Windows 7, mais le fait que les nouveaux ordinateurs fonctionnent sous un système d’exploitation 64 bits. Je dis cela parce que, lorsque j'ai exécuté une application de test ( le code source ici ) sous Windows 7 64 bits, l'accès au DSN utilisateur fonctionnait bien, mais l'accès au DSN système donnait le message d'erreur suivant:
IM014: le DSN spécifié contient une incompatibilité d'architecture entre le pilote et l'application
La documentation de Microsoft indique que cela se produit lorsqu'un pilote 32 bits est utilisé sur un ordinateur 64 bits ou inversement. Cela pourrait très bien être le problème, car lorsque j'ai basculé l'application de test sur 64 bits, l'accès au DSN système était possible.
La question qui se pose maintenant est la suivante: pourquoi cela se produit-il pour le DSN système, mais pas pour le DSN utilisateur? Des pilotes différents sont-ils installés pour les deux? Cela signifie que je ne pourrai plus utiliser le DSN système, car je n’ai aucune influence sur les logiciels que nous devons utiliser.