Как запросить локальный QSqlQueryModel?

Я отображаю QSqlTableModel в QSqlTableModel::OnManualSubmit Режим.

Я хочу выполнить запросы в стиле 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

Решение

QSqlTableModel (или в более общем QSqlQueryModel) делегирует выполнение запроса QSqlQuery, Когда результаты запроса получены, они хранятся внутри в виде таблицы со строками и столбцами, и вы можете получить к ним доступ, используя QModelIndex а также QAbstractItemModel::data(),

QSqlTableModel сам не является интерпретатором SQL. Не за что. Он не предоставляет никаких процедур анализа для вас. Это не цель этого класса. Если вам нужен анализ данных в модели, вы должны написать это самостоятельно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]