100 votes

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

J'essaie d'ouvrir pour la première fois un programme sous Windows XP Pro qui utilise PostgreSQL 9. Je reçois un message d'erreur qui dit :

Un problème a été rencontré lors de la tentative de connexion ou de création de l'application base de données de production. Détails : [Microsoft][ODBC Driver Manager] Nom de la source de données source name not found and no default driver specified

Dans mon gestionnaire ODBC, j'ai une liste de DSN d'utilisateur et de DSN de système. J'ai essayé d'installer un pilote odbc postgres pour voir si cela pouvait aider, mais cela n'a pas marché.

Il y a un fichier connect.dat dans le fichier programme avec une ligne disant "OLE DB Provider = MSDASQL". La modification de cette entrée change le message d'erreur que je reçois en "Provider cannot be found, it may not be properly installed".

Je ne sais pas quel nom de fournisseur insérer pour que cela fonctionne correctement. J'ai effectué des recherches approfondies sur cette erreur, mais en vain. Toute suggestion serait grandement appréciée.

74voto

PRGSTony Points 897
  1. En référence à l'erreur : [Microsoft] [ODBC Driver Manager] Nom de la source de données non trouvé et aucun pilote par défaut spécifié.

    Cette erreur signifie que le Data Source Name (DSN) que vous spécifiez dans votre configuration de connexion n'est pas trouvé dans le registre Windows.

    • Il est important que le format d'exécution et de liaison (ELF) de votre pilote ODBC soit le même que celui de votre application. En d'autres termes, vous avez besoin d'un pilote 32 bits pour une application 32 bits ou d'un pilote 64 bits pour une application 64 bits.

      Si elles ne correspondent pas, il est possible de configurer un DSN pour un pilote 32 bits et lorsque vous essayez d'utiliser ce DSN dans une application 64 bits, le DSN ne sera pas trouvé car le registre conserve les informations DSN à des endroits différents selon l'ELF (32 bits ou 64 bits).

      Assurez-vous que vous utilisez le bon outil ODBC Administrator. Sous Windows 32 et 64 bits, l'outil par défaut de l'administrateur ODBC se trouve dans le répertoire c:\Windows\System32\odbcad32.exe . Toutefois, sur une machine Windows 64 bits, la version 64 bits est utilisée par défaut. Si vous devez utiliser l'outil ODBC Administrator 32 bits sur un système Windows 64 bits, vous devrez exécuter celui qui se trouve ici : C:\Windows\SysWOW64\odbcad32.exe

      Je constate que les gens se trompent lorsqu'un utilisateur utilise l'administrateur ODBC 64 bits par défaut pour configurer un DSN, pensant qu'il s'agit d'un DSN 32 bits. Ensuite, lorsque l'application 32 bits tente de se connecter en utilisant ce DSN, le message "Data source not found..." apparaît.

    • Il est également important de s'assurer que l'orthographe du DSN correspond à celle du DSN configuré dans l'administrateur ODBC. Il suffit d'une seule lettre erronée pour que le DSN ne corresponde pas.

      Voici un article qui peut fournir quelques détails supplémentaires

      Il ne s'agit peut-être pas de la même marque de produit que vous avez, mais il s'agit d'un problème générique rencontré lors de l'utilisation de noms de sources de données ODBC.

  2. En ce qui concerne la partie de votre question relative au fournisseur OLE DB, il semble s'agir d'un problème similaire où l'application ne parvient pas à localiser la configuration du fournisseur spécifié.

72voto

Nick Points 978

J'ai obtenu cette erreur parce que j'avais le nom de la source de données dans le DSN de l'utilisateur au lieu du DSN du système. enter image description here

15voto

Meysam Points 151

Le problème peut provenir du nom du pilote, par exemple au lieu de DRIVER={MySQL ODBC 5.3 Driver} essayez DRIVER={MySQL ODBC 5.3 Unicode Driver} Vous pouvez voir le nom du pilote à partir de l'outil d'administration.

7voto

Tomasz Kot Points 143

Dans mon cas, cela fonctionnait dans x86 mais pas dans x64 .

C'est assez ridicule, mais en x64 la modification suivante a dû être ajoutée avant que cela ne fonctionne :

x86 -> szDsn = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)};
x64 -> szDsn = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb, *.accdb)};

Notez l'ajout de *.accdb .

5voto

leslie Points 51

Si vous utilisez IIS, vous devriez peut-être essayer
"pools d'applications" --> "DefaultAppPool" --> "valeur par défaut des pools d'applications". --> "32-Bit-application-activ" --> set false

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X