Укажите драйвер по умолчанию для ODBC - PullRequest
8 голосов
/ 12 мая 2009

У меня есть старое приложение VB6, которое создает DSN на основе параметра в файле конфигурации. Параметр является соединением ODBC, и у этого соединения есть имя (DSN-NAME), которое сопоставляет сервер (DBSERVER) с драйвером («Собственный клиент SQL Server»).

Как правило, он создает DSN следующим образом:

DSN = DSN-NAME; User = Foo; Password = бар

Если я укажу имя хоста в файле, он создаст строку соединения, которая говорит

DSN = DBSERVER; User = Foo; Password = бар

Сообщение об ошибке:

[Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию

Это наводит на мысль, что, возможно, существует способ указать драйвер по умолчанию, что может означать, что я могу указать только имя сервера в файле конфигурации и не нужно создавать соединение ODBC.

(я знаю, что они могут быть созданы автоматически; это просто для установки и удовлетворения моего любопытства).

Как указать драйвер по умолчанию? Если я могу установить драйвер по умолчанию для собственного клиента SQL Server, могу ли я сказать DSN = DBSERVER и подключиться?

Редактировать: Дело было в том, чтобы попытаться сделать это без изменения строки подключения. Все исследования показали, что на самом деле это невозможно, но формулировка диалога подсказывает, что это возможно.

Ответы [ 4 ]

3 голосов
/ 19 ноября 2012

У меня была та же проблема, и я исправил ее, используя 32-битного администратора ODBC для создания 32-битного DSN, а не 64-битного администратора в инструментах администрирования, который создает только 64-битный DSN, который не работает.

32-битный менеджер ODBC расположен по адресу C:\Windows\SysWOW64\odbcad32.exe

См. Эту статью "Не найдено имя источника данных и не указан драйвер по умолчанию" в блоге Кори Гилмора.

1 голос
/ 22 мая 2009

Вы можете достичь того, чего хотите, добавив «; SERVER = dbserver» в строку подключения.

В вашем DSN уже указан сервер, но ключевое слово SERVER в вашей строке подключения переопределит это.

http://msdn.microsoft.com/en-us/library/ms715433(VS.85).aspx

1 голос
/ 12 мая 2009

Чтобы указать драйвер по умолчанию, используйте DRIVER = в строке подключения:

DRIVER=driver name here;DATABASE=mydb;USER=foo;PASSWORD=bar

Имя драйвера - это имя, которое отображается в инструменте конфигурации ODBC панели управления для каждого драйвера. Обратите внимание, что вам нужно будет предоставить информацию, которая обычно поступает из DSN, в данном случае это имя базы данных.

0 голосов
/ 12 июля 2009

Используйте строку подключения без DSN ... она может быть создана "на лету" для точного соответствия вашим целям ... без необходимости использовать файлы odbcad32.cpl или reg / ini для управления / настройки требуемого dsn.

см. http://support.microsoft.com/kb/147875

для деталей

...