【发布时间】:2012-06-15 11:10:41
【问题描述】:
我正在尝试使用 pyodbc 访问 Access 数据库 (.mdb)。
我可以正常连接——
connection = pyodbc.connect(driver='{Microsoft Access Driver (*.mdb)}', dbp=path, pwd=password)
但我无法查询 MSysObjects 以获取其表的列表—
cursor = connection.cursor()
cursor.execute('select * from MSysObjects where Type=1 and Flags=0')
它给了我——
Record(s) cannot be read; no read permission on 'MSysObjects'. (-1907) (SQLExecDirectW)
浏览了一下,好像是因为数据库被“保护”了。
我无法运行 Access 来更改它。有什么地方可以以编程方式解决这个问题吗?我需要知道数据库用户或类似的东西吗?
I've seen a workaround in Visual Basic——有没有办法在 Python 中进行调整?我想我需要一个不同的库 (OLEDB)。
谢谢!
【问题讨论】:
-
您不能从连接中获取架构吗? Access 系统表不受支持,确实不适合此。
-
谢谢@Remou——这看起来很有用。我现在正在研究它
-
哈,我从没想过会这么简单——
cursor.tables()就像一个魅力。写下来,@Remou——你值得点赞 :-)