我正在尝试使用 sql alchemy 连接到 MS Access。我的 Access 是64位的。我尝试过 32 位 python 和 64 位 python。结果是一样的。
它使用 pyodbc 工作:
import pyodbc
from sqlalchemy import create_engine
class MSAccessConnector:
def __init__(self, **kwargs):
self.kwargs = kwargs
def test_connection(self):
try:
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C://Users//Gautam Sardana//Documents//gautam.accdb;')
cursor = conn.cursor()
return cursor
except Exception as e:
print(e)
pass
MSAccessConnector().test_connection()
但是 sqlalchemy 失败:
import pyodbc
from sqlalchemy import create_engine
class MSAccessConnector:
def __init__(self, **kwargs):
self.kwargs = kwargs
def test_connection(self):
try:
engine = create_engine(r'access:///C:/Users/Gautam Sardana/Documents/gautam.accdb')
return engine
except Exception as e:
print(e)
pass
def connect(self):
pass
MSAccessConnector().test_connection()
我收到错误:
Can't load plugin: sqlalchemy.dialects:access
最佳答案
sqlalchemy-access方言使用以下形式的连接 URI
access+pyodbc:// ...
不再支持以前的 access://...
表单。
您也不能简单地提供 Access 数据库文件的路径,例如
access+pyodbc:///C:/Users/Gautam Sardana/Documents/gautam.accdb
相反,您必须提供 ODBC 系统/用户 DSN 的名称或直通 ODBC 连接字符串。例如,对于名为“accessDatabase1”的系统或用户 DSN,它指向一个普通的、不 protected Access 数据库文件,您将使用
access+pyodbc://@accessDatabase1
请参阅"Getting Connected" wiki page了解详情。
关于python - SQLAlchemy - MS Access 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59244325/