Подключение к базе данных MS Access 2007 (.accdb) с помощью pyodbc

Я использую Win7 x64, использую Python 2.7.1 x64. Я портирую приложение, созданное на VC ++, на Python для образовательных целей.
Исходное приложение не имеет проблем с подключением к файлу базы данных формата MS Access 2007, используя следующую строку подключения:
OleDbConnection ^ conn = gcnew OleDbConnection ("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = | DataDirectory | DB .accdb ");
Теперь, когда я пытаюсь подключиться к тому же файлу БД (на этот раз в C: \) в Python, используя pyodbc и следующую строку подключения:
conn = pyodbc.connect (" DRIVER = {Драйвер Microsoft Access (* .mdb, * .accdb)}; Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C: \ DB.accdb; ")
, и независимо от того, сохраняю ли я OLEDB поставщика, или я использую Provider = MSDASQL; , как указано здесь ( MS упоминает, что он недоступен для 64-битной версии ), я продолжаю получать следующую ошибку:

pyodbc.Error: ('IM002', '[IM002] [Microsoft] [Диспетчер драйверов ODBC] Имя источника данных не найдено, и драйвер по умолчанию не указан (0) (SQLDriverConnectW)')

Что может вызвать эту проблему?

ДОБАВИТЬ: Я более внимательно изучил документы pyodbc и попробовал conn = pyodbc.connect ("Driver = {Microsoft Access Driver (* .mdb, * .accdb)}; DBQ = c: \\ DB.accdb;") - та же ошибка. Это действительно странно, поскольку pyodbc.dataSources () показывает, что у меня есть этот провайдер.

ADD2: Я пробовал использовать win32com.client, например здесь , чтобы подключиться с помощью OLE DB - безуспешно. Вроде невозможно, ничего не работает.

9
задан Community 23 May 2017 в 12:09
поделиться