如何查询本地QSqlQueryModel?

时间:2014-01-27 03:23:47

标签: c++ sql qt qsqlquery qsqltablemodel

我正在QSqlTableModel::OnManualSubmit模式下显示QSqlTableModel。

我想在我的本地副本上运行SQL样式查询,例如我有一个getMax函数随着我添加新行而改变。如果我的用户在交互期间本地更改QSqlTableModel,我希望getMax生成不同的输入,而getMax函数远程查询数据,结果将始终相同用户所做的任何更改。

int TestMe::getMax(QString col,QString table)
{
    QSqlQuery query;
    sf(query.exec("SELECT MAX("+col+") FROM "+table));
    sf(query.first());
    auto rec = query.record();
    return rec.field(0).value().toInt();
}

如何在模型的本地副本上运行查询?

1 个答案:

答案 0 :(得分:1)

QSqlTableModel(或更常见的是QSqlQueryModel)将查询执行委托给QSqlQuery。收到查询结果后,它们会以包含行和列的表格的形式存储在内部,您可以使用QModelIndexQAbstractItemModel::data()访问它们。

QSqlTableModel本身不是SQL解释器。一点也不。它不为您提供任何分析程序。这不是本课程的目的。如果您需要分析模型中的数据,则必须自己编写。