qt : QSqlQuery 返回 QVariant 的向量
Posted
技术标签:
【中文标题】qt : QSqlQuery 返回 QVariant 的向量【英文标题】:qt : QSqlQuery returns vector of 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);
【问题讨论】:
【参考方案1】:使用 boundValues:
QList<QVariant> allFields = query.boundValues().values();
P.S:我不会在 Qt 中使用标准容器。 Qt 容器有一个主要优势——隐式共享。我建议使用 QList 而不是 std::vector
【讨论】:
看起来不错,但是在调用 boundValues 之前我需要调用 bindValue() 吗? boundValues 是否会保存查询的当前结果(在调用 query.next() 之后)?以上是关于qt : QSqlQuery 返回 QVariant 的向量的主要内容,如果未能解决你的问题,请参考以下文章
Qt QSqlQuery bindValue 适用于?但不是 :placeholders
42.QT-QSqlQuery类操作SQLite数据库(创建查询删除修改)详解
Modle/View/Delegate框架+QSqlQuery类实现QT和MYSQL交互
QT数数据库Mysql中 QSqlQuery、QSqlQueryModel 、和QSqlTableModel实现增删改查?代码