通过pyodbc查询Access数据库有时可以正常工作,但有时会出现连接错误

时间:2019-05-08 15:55:19

标签: python ms-access pyodbc

我正在尝试通过pyodbc在本地存储的Access数据库中执行SQL查询。

在下面的代码中,打印表名称可以正常工作,因此连接似乎已成功建立:

import pyodbc
import pandas as pd

conn_str = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=O:\MAP\05_Reporting\2018_MAPDB_NewServer.accdb;'
    r'PWD=some_password;'
    r'UID=some_login;'
    )
cnxn = pyodbc.connect(conn_str)
cursor = cnxn.cursor()

def get_table_names():
    table_names = (table_info.table_name for table_info in cnxn.cursor().tables())
    return table_names

def get_query():
    sql = "SELECT MAID FROM dbo_MAMain"
    cursor.execute(sql)
    query = cursor.fetchall()
    return query

if __name__ == '__main__':
    table_names = get_table_names()
    for table_name in table_names:
        print(table_name) # this works fine

    query = get_query() # this gives a connection error
    print(query)

但是,query = get_query()行将引发错误,指示相反的内容:

  

回溯(最近一次通话最后一次):文件“ test.py”,第28行,在          query = get_query()在get_query中的文件“ test.py”,第19行       cursor.execute(sql)pyodbc.Error :(“ HY000”,“ [HY000] [Microsoft] [ODBC Microsoft Access驱动程序] ODBC--连接到   “ MAP_SQL_2014”失败。 (-2001)(SQLExecDirectW)“)

如何解决该错误?

0 个答案:

没有答案