Chaque nouvel ordinateur de ma société subit le 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 de domaine sur le même ordinateur à des moments différents.
Sur Windows XP Machines, je configurais simplement le ODBC Connexion en tant que System DSN. Peu importe l'utilisateur connecté , la connexion fonctionnerait pour lui et mon travail a été fait.
Récemment, nous obtenons 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 in System DSN, mais il reconnaît ceux-ci dans utilisateur 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 le faisais mal depuis le début?
Mise à jour: La raison n'est peut-être pas Windows 7, mais le fait que les nouveaux ordinateurs exécutent un système d'exploitation 64 bits. Je dis cela parce que lorsque j'ai exécuté une application de test ( code source ici ) sur Windows 7 de 64 bits, accédez à la utilisateur DSN Travaillé bien, mais accédant au System DSN a donné le message d'erreur suivant:
IM014: le DSN spécifié contient une inadéquation d'architecture entre le conducteur et l'application
La Microsoft Documentation indique que cela se produit lorsqu'un pilote 32 bits est accessible sur un ordinateur 64 bits, ou inversement. Cela pourrait très bien être le problème, car lorsque j'ai changé l'application de test sur 64 bits, le système DSN peut être consulté.
La question est la suivante: pourquoi cela se produit-il pour System DSN, mais pas pour l'utilisateur DSN - existe-t-il des pilotes différents installés pour les deux? Cela signifierait que je ne pourrai plus utiliser le système DSN plus longtemps, car je n'ai aucune influence sur le logiciel que nous devons utiliser.
L'article Microsoft Gestion des sources de données indique ce qui suit:
Pour gérer une source de données qui se connecte à un pilote 32 bits sous une plate-forme 64 bits, utilisez
c:\windows\sysWOW64\odbcad32.exe
. Pour gérer une source de données qui se connecte à un pilote 64 bits, utilisezc:\windows\system32\odbcad32.exe
. Dans les outils administratifs sur un système d'exploitation Windows 8 de 64 bits, il existe des icônes pour la boîte de dialogue Administrateur 32 bits et 64 bits ODBC.Si vous utilisez l'ODBCAD32.EXE 64 bits pour configurer ou supprimer un DSN qui se connecte à un pilote 32 bits, par exemple, le pilote à Microsoft Access (* .mdb), vous recevrez le message d'erreur suivant:
Le DSN spécifié contient une inadéquation d'architecture entre le pilote et l'application
Pour résoudre cette erreur, utilisez l'ODBCAD32.exe 32 bits pour configurer ou supprimer le DSN.
Votre application est évidemment 32 bits. Avez-vous utilisé le droit ODBCAD32.EXE pour définir le DSN?