Невозможно открыть базу данных с использованием Python - PullRequest
0 голосов
/ 27 августа 2018

Я не могу открыть базу данных доступа, используя python. Ниже приведен код и сообщение об ошибке. Я даже попытался проверить панель управления, куда указывает путь к файлу odbc. Появляется на правильном пути. %windir%\syswow64\odbcad32.exe не уверен, как избежать этого сообщения. Приведенный ниже код также показывает доступные драйверы.

import pyodbc


def show_odbc_sources():
    sl = []
    source = odbc.SQLDataSources(odbc.SQL_FETCH_FIRST)
    while source:
        dsn, driver = source
        sl.append('%s [%s]' % (dsn, driver))
        source = odbc.SQLDataSources(odbc.SQL_FETCH_NEXT)
    sl.sort()
    print('\n'.join(sl))


if __name__ == '__main__':
    show_odbc_sources()

conn = pyodbc.connect(r'driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\username\\Desktop\\E CX DB.accdb;')
cursor = conn.cursor()

Ошибки, которые я получаю:

Excel Files [Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)]
MS Access Database [Microsoft Access Driver (*.mdb, *.accdb)]
Sample Amazon Redshift DSN [Amazon Redshift (x64)]




---------------------------------------------------------------------------
InterfaceError                            Traceback (most recent call last)
<ipython-input-12-816aa9101ab7> in <module>()
     16         show_odbc_sources()
     17 
---> 18 conn = pyodbc.connect(r'driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\username\\Desktop\\E CX DB.accdb;')
     19 cursor = conn.cursor()

InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

1 Ответ

0 голосов
/ 28 августа 2018

Это драйвер, который у меня 32-битная версия.

Похоже, что вы используете 64-битную версию Python, поэтому pyodbc не может видеть 32-битную версию драйвера ODBC для доступа. Вам нужно будет либо перейти на 32-битную версию Python, либо перейти на 64-битную версию драйвера ODBC для доступа.

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