【发布时间】:2010-11-19 17:44:20
【问题描述】:
我正在编写一个 Python 程序,它使用 PyODBC 从 Microsoft Access mdb 文件中选择一些数据。
我需要发现几个不同表的列名。在 SQL Server 中,这可以通过使用类似的查询来完成
SELECT c.name FROM sys.columns c, sys.tables t
WHERE c.object_id = t.object_id
AND t.name = tableName
但该查询在 Access 中不起作用。与
SELECT MSysObjects.Name FROM MSysObjects
WHERE (((MSysObjects.Flags)=0) AND ((MSysObjects.Type)=1))
ORDER BY MSysObjects.Name
我可以获得非链接表名列表,但 MSysObject 似乎不包含列名列表。
有没有办法使用 SQL 来获取 Access 数据库中表的列名?
【问题讨论】:
-
如果有连接,可以使用 ADO Schema:
Set rs = cn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "tablenamehere"))吗?另见msdn.microsoft.com/en-us/library/kcax58fh(VS.80).aspx -
我不能。但是当我查找时,我发现 PyODBC 有一个使用 SQLColumns 的辅助方法。
标签: python ms-access ms-access-2007 pyodbc