如何使用pyodbc获取Access数据库特定字段的数据类型?

发布于 2021-01-29 15:03:26

我正在使用pyodbc在.mbd(访问)文件中对大型数据库进行数据挖掘。

我想创建一个新表,以从几个现有表中获取相关信息(然后将其提供给工具)。

我想我知道我需要传输数据的所有知识,并且我知道如何创建具有列名和数据类型的表,但是
我在获取现有现有各列的数据类型(INTEGER,VARCHAR等)时遇到了麻烦表。 我需要这些类型来兼容地创建新列。

我在互联网(例如thisthis)上发现的内容使我陷入无效命令的麻烦,所以我认为这是特定于平台的问题。再说一次,我对数据库相当满意。

有人知道如何获取这些字段的类型吗?

关注者
0
被浏览
107
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这些文章对您没有帮助的原因是因为它们是针对SQL Server的。SQL Server具有可以查询以获取列数据的系统表,而MS Access没有。MS
    Access仅允许您查询对象名称。

    但是ODBC支持通过ODBC.SQLColumns函数通过其连接获取模式。

    根据这个答案, PyODBC通过游标方法公开它。

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

    正如Mark在评论中指出的那样,您可能还需要row.data_type。他提供的链接包括其提供的所有列

    1. table_cat
    2. table_schem
    3. table_name
    4. column_name
    5. 数据类型
    6. type_name
    7. column_size
    8. buffer_length
    9. 十进制数字
    10. num_prec_radix
    11. 可为空
    12. 备注
    13. column_def
    14. sql_data_type
    15. sql_datetime_sub
    16. char_octet_length
    17. ordinal_position
    18. is_nullable:SQL_NULLABLE,SQL_NO_NULLS,SQL_NULLS_UNKNOWN之一。


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看