Une version 64 bits du système d’exploitation Microsoft Windows inclut les versions suivantes de l’outil Administrateur de sources de données ODBC (Open Database Connectivity) Microsoft (Odbcad32.exe) :
- La version 32 bits du fichier Odbcad32.exe se trouve dans le dossier %systemdrive%WindowsSysWoW64.
- La version 64 bits du fichier Odbcad32.exe se trouve dans le dossier%systemdrive%WindowsSystem32.
Le fichier Odbcad32.exe affiche les types suivants de noms de sources de données (DSN) :
- DSN système
- DSN utilisateur
Symptôme 1
La version 32 bits de l’outil Administrateur ODBC affiche des DSN système 32 bits, des DSN utilisateur 32 bits et des DSN utilisateur 64 bits. La version 64 bits de l’outil Administrateur ODBC affiche des DSN système 64 bits, des DSN utilisateur 32 bits et des DSN utilisateur 64 bits.
Symptôme 2
La fonction SQLDataSources renvoie toutes les versions de DSN utilisateur, quelle que soit l’architecture de l’application. La fonction SQLDataSources qui est appelée dans une application 32 bits renvoie uniquement des DSN système pour les pilotes 32 bits, mais renvoie des DSN utilisateur pour les pilotes 32 bits et les pilotes 64 bits. De même, la fonction SQLDataSources qui est appelée dans une application 64 bits renvoie uniquement des DSN système pour les pilotes 64 bits, mais renvoie des DSN utilisateur pour les pilotes 32 bits et les pilotes 64 bits. Par conséquent, si l’application établit une connexion en utilisant un DSN utilisateur qui est renvoyé depuis la fonction SQLDataSources, vous pouvez recevoir le message d’erreur suivant :
Source de données introuvable et nom de pilote non spécifié
Par exemple, envisagez le scénario suivant : Vous créez un DSN utilisateur pour le pilote 32 bits « Microsoft Access Driver (*.mdb). » Ce pilote n’a pas de version 64 bits correspondante. La fonction SQLDataSources qui est appelée dans une application 64 bits renvoie ce DSN utilisateur 32 bits. Cependant, si vous établissez une connexion au moyen de ce DSN utilisateur 32 bits, vous obtenez le message d’erreur mentionné plus haut dans cette section.