Как я могу получить доступ к моей базе данных Microsoft Access 2010 (accdb) с помощью pyodbc? Раньше я использовал базу данных MDB, который работал хорошо с строки подключения существа:pyodbc и ms access 2010 ошибка соединения
ODBC_CONN_STR = 'DRIVER={Microsoft Access Driver (*.mdb)};DBQ=%s;' % ACCESS_DATABASE_FILE
Сейчас я использую:
import pyodbc
ACCESS_DATABASE_FILE = "PSA_TEST.accdb"
ODBC_CONN_STR = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' % ACCESS_DATABASE_FILE
conn = pyodbc.connect(ODBC_CONN_STR)
Я получаю ошибку является: pyodbc.Error: ('HY000 ',' [HY000] [Microsoft] [ODBC-Treiber for Microsoft Access] Kein zulässiger Dateiname. (-1044) (SQLDriverConnect) ')
Что означает «имя файла неприемлемо». Я нашел связанный с этим вопрос, но ответ не работает для меня (Connecting to MS Access 2007 (.accdb) database using pyodbc). Я использую 32-битный питон в соответствии с выходом:
python -c 'import struct; print struct.calcsize("P") * 8'
и MS Access 32 бит.
[EDIT]
- На всякий случай, я проверяю с os.path.isfile (ACCESS_DATABASE_FILE), что файл на самом деле существует
- файл может быть открыт с доступом
- открытия предыдущий файл mdb с новой строкой соединения дает то же сообщение об ошибке, что afaik не является ожидаемым поведением
Является ли база данных доступа в вашем текущем рабочем каталоге? Если нет, вам нужно указать путь к файлу, а также имя файла. – ChrisProsser
Да, это так. Тот же код работает правильно с файлом mdb в том же каталоге и немного другой строкой соединения. – phobic
На самом деле, когда я указываю неправильное имя файла, я получаю то же сообщение об ошибке. Я проверил, связано ли это с тем, что подчеркивание не интерпретируется правильно, но изменение имени файла на test.accdb не приводит к изменению результата. – phobic