Почему я получаю сообщение «Имя источника данных не найдено, и драйвер по умолчанию не указан» и как мне это исправить?

#python #pandas #ms-access #odbc

#База данных #odbc

Вопрос:

При попытке создать программу в Windows, которая подключается к базе данных через ODBC, я получил следующую ошибку:

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

Я уверен, что мой код правильный. Он даже работал на другом компьютере.

Почему я получаю эту ошибку? И как мне это исправить?

Ответ №1:

Что вызывает эту ошибку?

Сообщение об ошибке сообщает вам, проще говоря, что диспетчер драйверов ODBC не смог найти драйвер, указанный вами в строке подключения или DSN.

Это может иметь 3 общие причины:

  1. Драйвер, который вы пытались использовать, не установлен в вашей системе
  2. Драйвер установлен, однако он не соответствует разрядности кода, который вы запускаете
  3. Вы допустили ошибку при вводе имени драйвера

Как мне проверить, какие драйверы установлены в моей системе?

Вы можете проверить драйверы, установленные в вашей системе, обратившись к администратору источника данных ODBC. Чтобы открыть его, нажмите ⊞ Win Rи введите: odbcad32.exe . Затем проверьте на вкладке Драйверы для установленных драйверов. В столбце Name указано точное имя, которое вы должны использовать в строке подключения или DSN.

Если вы используете 64-разрядную Windows, в ней перечислены только 64-разрядные драйверы, установленные в вашей системе. Чтобы узнать, какие 32-разрядные драйверы установлены, нажмите ⊞ Win Rи введите: C:WindowsSysWOW64odbcad32.exe и снова перейдите на вкладку Драйверы.

введите описание изображения здесь

Драйвер установлен, но может быть неправильная разрядность, что мне делать?

Тогда у вас есть два варианта: либо настроить разрядность, в которой работает ваша программа, либо установить драйвер с другой разрядностью.

Некоторые драйверы, установленные по умолчанию в Windows, имеют только 32-разрядный вариант. Они не могут использоваться с 64-разрядными программами.

Обычно вы можете определить, с какой разрядностью выполняется программа в диспетчере задач. В Windows 10 ко всем 32-разрядным программам добавляется (32-разрядный) к их имени. Если этого нет, вы, вероятно, используете 64-разрядную программу, а большинство современных языков программирования и сред по умолчанию работают на 64-разрядной версии, но позволяют переключиться на 32-разрядную. Однако особенности для разных языков программирования выходят за рамки этого вопроса.

Как я могу убедиться, что я не ошибся в имени драйвера?

Строка подключения ODBC выглядит следующим образом:

 DRIVER={DriverName};ParameterName1=ParameterValue1;ParameterNameN=ParameterValueN;
 

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

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

У меня нет драйвера или у меня неправильная разрядность, где мне взять правильный?

Это зависит от того, какой драйвер вы хотите использовать.

Список распространенных драйверов с местами загрузки (все 32-разрядные и 64-разрядные по одному и тому же URL):

Если драйвер, который вы хотите использовать, отсутствует в списке, его местоположение обычно легко найти с помощью Google.