Я использую 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 - безуспешно. Вроде невозможно, ничего не работает.