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

0

Я показываю 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();
}

Как выполнять запросы в локальной копии модели?

  • 1
    Что вы подразумеваете под "локальной копией"? Копия чего?
  • 0
    @Googie Googie Я имею в виду копию удаленных данных SQL, которые находятся в моей модели, а не в оперативном режиме в базе данных SQL на моем сервере. Когда я отправлю свою модель, эти два будут синхронизированы.
Показать ещё 1 комментарий
Теги:
qt
qsqlquery
qsqltablemodel

1 ответ

1
Лучший ответ

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню