【问题标题】:QSqlField real type nameQSqlField 真实类型名
【发布时间】:2014-03-11 11:11:40
【问题描述】:

我正在寻找一种从 qtsql 模型中检索真实数据库类型名称的方法。

不幸的是

QVariant::typeToName(field.type())

其中字段是QSqlField 类型

给我已经映射到一些 Qt 类型的类型。使用Qt可以获取实名吗?

【问题讨论】:

    标签: sql qt qtsql qsqldatabase


    【解决方案1】:

    我找到了一种通过以下查询检索真实数据库类型的方法:

    QSqlQuery query("PRAGMA table_info(tableName)");
    

    结果你会得到:

    cid|name                 |type         |notnull |dflt_value |pk
    0  |id                   |integer      |0       |           |1
    1  |name                 |varchar(45)  |1       |           |0
    

    感谢这篇文章: Getting the type of a column in SQLite

    希望对你有帮助

    【讨论】:

    • 我知道使用 sqlquery 从数据库中检索数据,但我试图在没有实际使用 SQL 的情况下获取它。无论如何,我已经在 QtSQL 之上构建了自己的接口来从数据库中检索该信息,因为我需要一种方法来处理多个驱动程序。每个驱动程序都有自己的类来获取这些数据。对于 MySQL,它并不像在 SQLite 中那么简单。感谢您的尝试;)
    • 哦,我明白了,我的回答是短视的,因为我有同样的问题,但只针对 sqlite,我什至没有想到其他驱动程序:) 你的解决方案是开源的吗? ;)
    • 实际上它是我的工程论文的一部分。基于现有数据库的小型 ORM 生成 C++ DAO。在这里:github.com/Krycho/Qubic/tree/master/qubic/src/QcUtility/… 你可以找到我的解决方案。目前它仅适用于 1 个驱动程序,但可以轻松扩展。
    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 2023-04-10
    相关资源
    最近更新 更多