Vérification de l’installation du pilote ODBC

Résumé

Cet article vous montre comment vérifier qu’un pilote ODBC (Open Database Connectivity) est installé, inscrit et configuré correctement sur un ordinateur Windows. Utilisez-la lorsqu’une application ne peut pas se connecter à une base de données, lorsqu’un pilote ODBC n’apparaît pas dans l’administrateur de source de données ODBC ou lorsque vous recevez l’erreur Data source name not found and no default driver specified (SQLSTATE IM002). Les étapes de vérification couvrent les copies 32 bits et 64 bits de l’administrateur de source de données ODBC, les entrées de nom de source de données (DSN) et de pilote dans le registre Windows, ainsi que les chaîne de connexion que l’application transmet au Gestionnaire de pilotes ODBC.

Quelle copie de l’administrateur de source de données ODBC devez-vous ouvrir ?

Sur les versions 64 bits de Windows, il existe deux copies de l’Administrateur de sources de données ODBC, et chaque copie gère les pilotes et les DSN système correspondant à leur architecture :

  • Pour les applications 64 bits, sélectionnez Windows+R et tapez ODBCAD32.EXE ou C :\WINDOWS\SYSTEM32\ODBCAD32.EXE.

  • Pour les applications 32 bits, sélectionnez Windows+R et tapez C :\WINDOWS\SYSWOW64\ODBCAD32.EXE.

Les deux exécutables sont nommés odbcad32.exe, de sorte que le chemin d’accès au dossier détermine celui que vous ouvrez. Veillez toujours à faire correspondre l’outil à l’architecture de l’application qui établit la connexion. Une application 32 bits ne peut pas charger un pilote ODBC 64 bits, et une application 64 bits ne peut pas charger un pilote ODBC 32 bits.

Exemples de chaînes de connexion ODBC

Les applications qui appellent un pilote ODBC peuvent utiliser des noms de source de données (DSN) ou des chaînes de connexion sans DSN. Voici quelques exemples :

  • driver={ODBC Driver 18 for SQL Server};server=sqlprod01;database=AdventureWorks;trusted_connection=yes
  • dsn=userdsn1
  • dsn=test;uid=<user name>;pwd=<password>

La première chaîne de connexion spécifie explicitement le nom du pilote, le nom du serveur, le nom de la base de données et s’il faut utiliser la sécurité intégrée (trusted_connection). Il s’agit d’une connexion sans DSN.

Les deuxième et troisième chaîne de connexion utilisent un DSN, qui est une encapsulation de ces éléments stockés dans le Registre. Le nom d’utilisateur et le mot de passe ne peuvent pas être stockés dans le DSN et doivent être spécifiés explicitement. Pour plus d’informations sur les attributs DSN, consultez l’attribut DSN chaîne de connexion.

Un DSN est un raccourci permettant aux applications de charger le pilote, en fournissant un niveau d’indirection. En utilisant un DSN, vous pouvez modifier le serveur, la base de données et même le type de base de données auquel l’application se connecte sans modifier l’application.

Le nom du pilote dans le chaîne de connexion doit correspondre au nom d'un pilote inscrit sur l'ordinateur. Les noms de pilote et de DSN ne sont pas sensibles à la casse, mais l’orthographe et la ponctuation doivent correspondre exactement. Si aucun pilote inscrit ne correspond, le Gestionnaire de pilotes ODBC ne peut pas charger le pilote.

Note

Le SQL Server pilote (sqlsrv32.dll) fourni avec Windows et le pilote SQL Server Native Client (SQL Server Native Client 11.0) ne sont pas recommandés pour le nouveau développement. SQL Server Native Client n'est pas fourni avec SQL Server 2022 (16.x) et versions ultérieures ou SQL Server Management Studio 19 et versions ultérieures. Pour les nouvelles connexions, utilisez le pilote ODBC Microsoft pour SQL Server, que vous pouvez télécharger pour Windows, Linux et macOS.

Vérifiez que le pilote et le DSN apparaissent dans l’administrateur de source de données ODBC

Utilisez l’administrateur de source de données ODBC pour vérifier la présence de pilotes ODBC et de DSN. Ouvrez la copie qui correspond au bit de votre application, puis vérifiez l’onglet Pilotes pour voir si le pilote est répertorié. Les captures d’écran suivantes montrent les pilotes 64 bits et 32 bits :

Capture d’écran montrant un pilote 64 bits.

Capture d’écran montrant un pilote 32 bits.

Si le pilote est répertorié, créez un DSN de test sous l’onglet DSN système ou Utilisateur DSN et exécutez un test de connexion. Un test réussi confirme que le pilote charge et que le serveur est accessible. Si le pilote n’est pas répertorié, réinstallez le pilote, puis vérifiez les clés de Registre comme décrit dans la section suivante.

Informations de pilote ODBC et de DSN dans le Registre

Les informations du pilote et du DSN sont stockées dans le Registre :

Capture d’écran montrant les informations du pilote et du DSN dans le Registre.

Sur les ordinateurs 64 bits, la redirection du Registre sépare les informations 32 bits des informations 64 bits pour les pilotes et les DSN système. L’entrée Wow6432Node du Registre stocke les informations sur le pilote 32 bits et le DSN système. Les DSN utilisateur ne sont pas redirigés. Les outils 32 bits et 64 bits affichent tous les DSN utilisateur. Les clés pertinentes sont les suivantes :

  • HKEY_LOCAL_MACHINE\SOFTWARE\ODBC (pilotes 64 bits et DSN système)
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC (pilotes 32 bits et DSN système)
  • HKEY_CURRENT_USER\Software\ODBC (DSN utilisateur pour l’utilisateur actuel)

La ODBC.INI sous-clé contient une liste de tous les DSN et des sous-clés pour chaque DSN. La ODBCINST.INI sous-clé répertorie tous les pilotes.

La capture d’écran montre les sous-clés ODBC.INI et ODBCINST.INI.

En cas de problème lors du chargement d’un pilote via le DSN, vérifiez la sous-clé ODBC.INI pour savoir quel pilote le DSN utilise.

Capture d’écran montrant comment déterminer le pilote utilisé par le DSN.

Vérifiez également que le chemin du pilote répertorié sous ODBCINST.INI pointe vers un fichier DLL qui existe sur le disque. Une entrée de Registre qui fait référence à une DLL manquante ou déplacée est une cause courante d’échecs de chargement après une désinstallation, une mise à niveau ou un nettoyage manuel des fichiers. Pour connaître les noms et emplacements de fichiers installés par le pilote ODBC Microsoft pour SQL Server, consultez configuration système requise, installation et fichiers de pilote.

Note

L’entrée LastUser n’affecte pas le chaîne de connexion. Il est utilisé uniquement lors du test du DSN dans l’administrateur de source de données ODBC.

Résoudre l’erreur IM002 : Nom de la source de données introuvable et aucun pilote par défaut spécifié

Validez le nom du serveur, le nom de la base de données et si le pilote est installé. Si le pilote ne peut pas être chargé, vous recevez le message d’erreur suivant :

ERROR [IM002] [Microsoft][ODBC Driver Manager] Nom de la source de données introuvable et aucun pilote par défaut spécifié.

Cette erreur signifie que le Gestionnaire de pilotes ODBC n'a pas pu résoudre le nom du DSN ou du pilote dans le chaîne de connexion. Vérifiez les éléments suivants dans l’ordre :

  1. Le nom DSN dans la chaîne de connexion correspond à un DSN répertorié dans l’Administrateur de sources de données ODBC.
  2. Un pilote du bitness correspondant est installé. Un DSN utilisateur apparaît à la fois dans les outils 32 bits et 64 bits, mais la connexion échoue si le pilote auquel il renvoie n’est pas installé pour l’architecture de l’application. Pour plus d’informations, consultez l’outil Administrateur ODBC affiche les noms de domaine d’utilisateur 32 bits et 64 bits.
  3. Le DSN système a été créé dans l’outil correspondant à l’architecture de l’application. Les DSN système sont redirigés par le registre. Par conséquent, un DSN système créé dans l’outil 64 bits n’est pas disponible pour une application 32 bits.
  4. L’étendue DSN correspond au compte qui exécute l’application. Un DSN utilisateur sous HKEY_CURRENT_USER n’est pas visible par un service qui s’exécute sous un autre compte. Utilisez un DSN système pour les services et les applications web.
  5. Le nom du pilote dans une chaîne de connexion sans DSN correspond à un pilote répertorié dans la sous-clé ODBCINST.INI.

Même si le chemin du pilote dans le DSN est incorrect, le gestionnaire de pilotes peut toujours le localiser dans la sous-clé ODBCINST.INI à l’aide du nom du pilote indiqué dans la clé de registre ODBC Data Sources.

Si le pilote se charge mais que la connexion échoue toujours, le problème est généralement réseau, authentification ou chiffrement lié au lieu d’un problème d’installation. Pour ces symptômes, consultez Résoudre les problèmes de connectivité dans SQL Server.

Prise en charge des pilotes ODBC non-Microsoft

Pour les pilotes ODBC autres que Microsoft, la prise en charge par Microsoft est limitée aux actions suivantes :

  • Vérifiez si les clés de Registre de pilotes sont présentes. Si ce n’est pas le cas, réinstallez le pilote ou consultez le fournisseur.
  • Vérifiez si les chemins pointent vers un fichier DLL qui existe. Si ce n’est pas le cas, réinstallez le pilote ou consultez le fournisseur.
  • Créez un DSN de test et effectuez un test de connexion.
  • Aidez à capturer une trace Process Monitor (Procmon) que le fournisseur peut analyser.

Le comportement du pilote, les défauts du pilote et la logique d’installation du pilote restent la responsabilité du fournisseur qui a produit le pilote.

Exclusion de responsabilité des informations tierces

Les produits tiers abordés par cet article sont fabriqués par des entreprises indépendantes de Microsoft. Microsoft ne donne aucune garantie, implicite ou autre, concernant la performance ou la fiabilité de ces produits.