我正在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();
}
如何在模型的本地副本上运行查询?
答案 0 :(得分:1)
QSqlTableModel
(或更常见的是QSqlQueryModel
)将查询执行委托给QSqlQuery
。收到查询结果后,它们会以包含行和列的表格的形式存储在内部,您可以使用QModelIndex
和QAbstractItemModel::data()
访问它们。
QSqlTableModel
本身不是SQL解释器。一点也不。它不为您提供任何分析程序。这不是本课程的目的。如果您需要分析模型中的数据,则必须自己编写。