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

260
30

Я пытаюсь открыть программу в первый раз на Windows XP Pro, которая использует PostgreSQL 9. Я получаю сообщение об ошибке:


Проблема возникла при попытке войти в систему или создать производственной базы данных. Подробности: [Microsoft] [Менеджер драйверов ODBC] Данные имя источника не найдено и указанный драйвер по умолчанию не указан



В моем диспетчере ODBC у меня есть список пользовательских DSN и системных DSN. Я попытался установить драйвер postgres odbc, чтобы убедиться, что это поможет, но это не так.


В файле программы есть файл connect.dat с строкой с надписью "OLE DB Provider = MSDASQL". Изменение этой записи изменяет сообщение об ошибке, которое я получаю: "Поставщик не может быть найден, он может быть неправильно установлен".


Я не знаю, какое имя провайдера нужно вставить, чтобы это нормально работало. Я провел обширные исследования этой ошибки безрезультатно. Любые предложения были бы с благодарностью.

спросил(а) 2020-03-04T16:00:10+03:00 7 месяцев, 4 недели назад
1
Решение
258

В связи с ошибкой: [Microsoft] [ODBC Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию.

Эта ошибка означает, что имя источника данных (DSN), которое вы указываете в конфигурации соединения, не найдено в реестре Windows.

    Важно, чтобы ваш исполняемый файл ODBC-драйвера и формат ссылок (ELF) совпадали с вашим приложением. Другими словами, вам нужен 32-разрядный драйвер для 32-разрядного приложения или 64-разрядный драйвер для 64-разрядного приложения.

    Если они не совпадают, можно настроить DSN для 32-разрядного драйвера, и при попытке использовать этот DSN в 64-разрядном приложении DSN не будет найден, поскольку реестр содержит информацию о DSN в разных местах. в зависимости от ELF (32-разрядный или 64-разрядный).

    Убедитесь, что вы используете правильный инструмент администратора ODBC. В 32-разрядной и 64-разрядной версиях Windows средство администратора ODBC по умолчанию находится в c:\Windows\System32\odbcad32.exe. Однако на 64-разрядной машине с Windows по умолчанию используется 64-разрядная версия. Если вам нужно использовать 32-битный инструмент администратора ODBC в 64-битной системе Windows, вам нужно запустить тот, который найден здесь: C:\Windows\SysWOW64\odbcad32.exe

    Я вижу, что люди, использующие эту ошибку, находятся в ситуации, когда пользователь использует 64-битный администратор ODBC по умолчанию для настройки DSN; думая, что это для 32-разрядного DSN. Затем, когда 32-разрядное приложение пытается подключиться с использованием этого DSN, возникает "Источник данных не найден...".

    Также важно убедиться, что написание DSN соответствует настроенному DSN в ODBC Administrator. Одно неверное письмо - все, что нужно для несоответствия DSN.

    Вот статья, которая может предоставить некоторые дополнительные детали

    Однако это может быть не тот товарный знак, который у вас есть; это общая проблема, возникающая при использовании имен источников данных ODBC.

Что касается части вашего вопроса с OLE DB Provider, то это похоже на проблему подобного типа, когда приложение не может найти конфигурацию для указанного поставщика.

ответил(а) 2020-03-04T16:13:15.673745+03:00 7 месяцев, 4 недели назад
206

Получил эту ошибку, потому что у меня было Имя источника данных в DSN пользователя вместо System DSN enter image description here

ответил(а) 2020-03-04T16:00:10+03:00 7 месяцев, 4 недели назад
80

Я получил это с помощью тестов с данными:


Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)

Проблема заключается в том, что указанный выше драйвер - только 32 бит. Я переключил файл сценариев visual studio на 64-битный, чтобы протестировать приложение с 64-разрядной версией.


Переключение на 32-битный файл файла настроек исправлено.


используя файл тестовых настроек

ответил(а) 2020-03-04T16:00:10+03:00 7 месяцев, 4 недели назад
81

Проблема может быть, например, из имени драйвера вместо DRIVER={MySQL ODBC 5.3 Driver} try DRIVER={MySQL ODBC 5.3 Unicode Driver} вы можете увидеть имя драйвера из инструмента администрирования

ответил(а) 2020-03-04T16:00:10+03:00 7 месяцев, 4 недели назад
41

если вы используете IIS, возможно, вам следует попробовать
"пулы приложений" → "DefaultAppPool" → "значение по умолчанию пулов приложений" → "32-Bit-application-activ" → установить false

ответил(а) 2020-04-05T16:10:47.042524+03:00 6 месяцев, 3 недели назад
42

Я попытался выше, но нашел мою проблему, я использовал | в имени DSN (я перемножил ODBC-коннекторы - по одному на каждую БД - чтобы убедиться, что я не объединяю данные)

Я заменил | (труба) с _ и все теперь работает нормально.

Я пытался вызвать SQL Server из Alteryx.

ответил(а) 2020-03-16T16:21:30+03:00 7 месяцев, 2 недели назад
41

Следуя приведенным здесь инструкциям, http://help.loftware.com/pages/viewpage.action?pageId=27099554 Мне пришлось установить распространяемый компонент Microsoft Access Database Engine 2010, прежде чем я установил драйвер Excel, чтобы использовать соединение без DSN, которое я хотел использовать из Perl.

ответил(а) 2020-03-04T16:00:10+03:00 7 месяцев, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема