Qt QSqlRelationalTableModel неверное число записей
В форме отображается всего 10 записей.
model = new QSqlRelationalTableModel(this, db);
model->setTable("products");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
model->rowCount() возвращает 10 записей, хотя в таблице у меня 16.
В чем может быть дело?
Ответы (1 шт):
Я, конечно, могу ошибаться, но SQLite API не предоставляет отдельной функции для выполнения запроса select, там есть что-то вроде sqlite3_exec, которому передается коллбэк, который вызывается на каждой записи результата. Соответственно, нет и возможности стандартным путем узнать, сколько строк оказалось в полученном результате.
А вот что пишут в документации к исходному коду:
If the database supports returning the size of a query (see QSqlDriver::hasFeature()), the number of rows of the current query is returned. Otherwise, returns the number of rows currently cached on the client.
Попробуйте в цикле вызывать fetchMore(). Проверить, что данная операция имеет смысл можно с помощью canFetchMore().