【发布时间】:2019-02-28 16:16:36
【问题描述】:
在这个问题上搜索了很多之后,我请求你的指导!
使用 Python,我必须访问 multiple Access 数据库并提取有关这些数据库内容的信息(表名、类型表,如果是链接表,则为来源...)。
我从使用 pyodbc 开始,但是当我想访问包含我想要的所有数据的表 MSysObjects 时,我遇到了访问授权问题 ("无法读取记录 "\xa0MSysObjects\xa0" 没有读取权限)。
经过一番搜索,我发现在 Access DB 中执行授权此类请求的代码行很少。但它需要从每个 Access DB 启动,因为某些功能只能在 Access DB 上使用。
所以我决定使用 win32com 看看它是否有解决方案。 可悲的是,它没有。 我遇到了完全相同的错误。
最后似乎只有几个解决方案:
- 想办法把几行授权给 数据库(可能直接通过 Python 导入或通过制作 Python 从特定的 Access 数据库导入它)然后执行它。
- 找到一种从 MSysObjects 之外的其他方式获取所需信息(此处为链接表的源数据库)的方法。
- 想办法通过 SQL 请求直接从 Python 更新授权。
我希望我是可以理解的! 如果您对我想到的解决方案之一或什至其他解决方案有答案,我将非常感激!
向大家致以最诚挚的问候!
【问题讨论】:
-
您应该能够使用 win32com 和 Access DAO 循环访问
TableDefs集合并检查每个TableDef对象的.Connect属性。 -
感谢@GordThompson,它运行良好!
标签: python ms-access pyodbc pywin32 win32com