【问题标题】:qt : QSqlQuery returns vector of QVariantqt : QSqlQuery 返回 QVariant 的向量
【发布时间】:2010-12-20 12:32:46
【问题描述】:

我正在使用这样的 QSqlQuery 类查询一个 sqlite 数据库:

 QSqlQuery query("SELECT country FROM artist");
 while (query.next()) {
     QString country = query.value(0).toString();
     doSomething(country);
 }

有没有办法直接从 QSqlLite 类中获取 QVariants 的向量?像这样:

 QSqlQuery query("SELECT country FROM artist");
 while (query.next()) {
     std::vector< QVariant > allFields;
     allFields.push_back( query.value(0) );
     allFields.push_back( query.value(1) );
     allFields.push_back( query.value(2) );
     doSomething(allFields);
 }

【问题讨论】:

    标签: c++ qt sqlite


    【解决方案1】:

    使用 boundValues:

    QList<QVariant> allFields = query.boundValues().values();
    

    P.S:我不会在 Qt 中使用标准容器。 Qt 容器有一个主要优势——隐式共享。我建议使用 QList 而不是 std::vector

    【讨论】:

    • 看起来不错,但是在调用 boundValues 之前我需要调用 bindValue() 吗? boundValues 是否会保存查询的当前结果(在调用 query.next() 之后)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    相关资源
    最近更新 更多