我正在尝试使用
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 来更改它。有没有办法通过编程来解决这个问题?我需要知道数据库用户或类似的东西吗?
我在 Visual Basic 中看到了一个解决方法—我能否在 Python 中适应那个方法?我猜我需要一个不同的库(OLEDB)。
谢谢!
cursor.tables()
真是太好用了。写出来吧,@Remou - 你应该会得到很多赞 :-) - user1458476