QtSQL如何将记录读取为QMap

时间:2011-04-09 13:11:53

标签: qt4 qtsql

有一种快速的方法可以将查询记录作为QMap<QString,QVariant>或类似的类型吗?

或者你可以告诉我如何访问当前记录中的列列表?

感谢。

1 个答案:

答案 0 :(得分:1)

我认为没有这样的方法。但是你可以构造包含所有列的QMap对象:

QString sql = "SELECT * FROM xxx WHERE id = x";
query.exec(sql);
QSqlRecord record = query.record();
query.next();

QMap<QString,QVariant> params;
for (int i=0; i<record.count(); ++i) {
    params.insert(record.fieldName(i++), query.value(i));
}

正如您所见,QSqlRecord提供了对列等信息的访问。