Spécifier un pilote par défaut pour ODBC
J'ai un héritage application VB6 qui s'appuie d'une source de données en fonction d'un paramètre dans un fichier de config. Le paramètre est une connexion ODBC, et la connexion a un nom (NOM de DSN) qui associe un serveur (DBSERVER) à un pilote ("SQL Server Native Client").
Généralement, il s'appuie d'une source de données comme ceci:
DSN=NOM de DSN;User=toto;Mot de passe=bar
Si je spécifier un nom d'hôte dans le fichier, il construit une chaîne de connexion qui dit
DSN=DBSERVER;User=toto;Mot de passe=bar
Le message d'erreur signalé est:
[Microsoft][Gestionnaire de pilotes ODBC] source de Données non trouvée et nom de pilote non spécifié
Cela me suggère qu'il est peut-être un moyen de spécifier un pilote par défaut, ce qui veut dire que je peux spécifier le nom du serveur dans le fichier de config, et pas besoin de créer la connexion ODBC.
(Je suis conscient de ces peut être créé automatiquement; c'est simplement pour l'installation, et pour satisfaire ma curiosité).
Comment spécifier un pilote par défaut? Si je peux mettre le pilote par défaut de SQL Server Native Client, puis-je dire DSN=DBSERVER et connect?
Edit: le point est d'essayer et de le faire sans modifier la chaîne de connexion. Toutes les recherches ont suggéré que ce n'est pas réellement possible, mais il a libellé de la boîte de dialogue a suggéré qu'il pourrait être.
OriginalL'auteur crb | 2009-05-11
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et il fixe à l'aide de la ODBC 32 bits à l'administrateur de créer un 32 bits DSN plutôt que le 64 bits admin dans Outils d'Administration qui crée uniquement 64 bits DSN qui ne fonctionnent pas.
L'ODBC 32 bits Gestionnaire est situé au
C:\Windows\SysWOW64\odbcad32.exe
Voir cet article "Nom de source de données introuvable et aucun pilote par défaut spécifié" sur Corey Gilmore blog.
OriginalL'auteur mark.murphy
Pour spécifier un pilote par défaut, utiliser DRIVER= dans la chaîne de connexion:
Le nom du pilote est le nom qui s'affiche dans le Panneau de configuration ODBC outil de configuration pour chaque pilote. Remarque: vous devez fournir l'info qui serait normalement à partir de la source de données, dans ce cas, le nom de base de données.
OriginalL'auteur
Vous pouvez obtenir ce que vous voulez en ajoutant ";SERVER=dbserver" à votre chaîne de connexion.
Il y a déjà un serveur spécifié dans votre source de données, mais le SERVEUR de mot-clé dans votre connectionstring remplace.
http://msdn.microsoft.com/en-us/library/ms715433(SV.85).aspx
OriginalL'auteur Erik Erkelens
Utiliser une chaîne de connexion sans DSN...il peut être créé "à la volée" pour exactement la suite de vos fins de....pas de minable avec odbcad32.le cpl ou reg/fichiers ini de contrôler et de configurer un dsn nécessaire.
voir http://support.microsoft.com/kb/147875
pour plus de détails
Désolé, j'ai mal compris. Pour préciser, j'ai un couple de suivi des questions. Êtes-vous à l'aide de ADO pour se connecter avec une ODBC de la base de données cible? Est-ce la Base de données cible toujours SQL Server? Toujours connecté via Native Client? Votre désir est de savoir comment spécifier le pilote par défaut dans la chaîne de connexion ole db et pas le DSN ODBC? Donc, en essence, vous désirez utiliser ADO, spécifier un fournisseur OLEDB de ODBC, fournir des informations supplémentaires dans la chaîne de Connexion OLEDB pour spécifier la SQLServer Cible?
Dans ce cas, c'est toujours oui. Mais je ne peux pas changer le générés chaîne de connexion, sinon, je voudrais juste poser SERVEUR=dbserver.
OriginalL'auteur CMB