首页 文章

使用PyODBC在表中选择列名

提问于
浏览
3

我正在编写一个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数据库中表的列名?

3 回答

  • 0

    我无法找到SQL查询来完成此任务 . 但是,我确实发现PyODB有一个可以返回列列表的游标方法

    # columns in table x
    for row in cursor.columns(table='x'):
        print row.column_name
    
  • 0

    我不确定查询该版本MS-Access的限制,但我在其他类似情况下看到的解决方案是SELECT * FROM表LIMIT = 0(或1依赖) . 然后,您可以从结果中收集返回的列名称 .

  • 6

    Python 3

    通过conlumn名称访问

    table_row = conn.execute(query)
    for row in table_rows:
         print (row.nameColumn)
    

    通过conlumn索引访问

    table_row = conn.execute(query)
    for row in table_rows:
         print (row[0])
    

相关问题