summaryrefslogtreecommitdiffstats
path: root/src/sql/models/qsqltablemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sql/models/qsqltablemodel.cpp')
-rw-r--r--src/sql/models/qsqltablemodel.cpp21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp
index f7198978dd..30c3f032e0 100644
--- a/src/sql/models/qsqltablemodel.cpp
+++ b/src/sql/models/qsqltablemodel.cpp
@@ -213,7 +213,7 @@ QSqlRecord QSqlTableModelPrivate::primaryValues(int row) const
lower-level QSqlQuery and can be used to provide data to view
classes such as QTableView. For example:
- \snippet doc/src/snippets/sqldatabase/sqldatabase.cpp 24
+ \snippet sqldatabase/sqldatabase.cpp 24
We set the SQL table's name and the edit strategy, then we set up
the labels displayed in the view header. The edit strategy
@@ -224,7 +224,7 @@ QSqlRecord QSqlTableModelPrivate::primaryValues(int row) const
QSqlTableModel can also be used to access a database
programmatically, without binding it to a view:
- \snippet doc/src/snippets/sqldatabase/sqldatabase.cpp 21
+ \snippet sqldatabase/sqldatabase.cpp 21
The code snippet above extracts the \c salary field from record 4 in
the result set of the query \c{SELECT * from employee}.
@@ -364,18 +364,9 @@ bool QSqlTableModel::select()
if (query.isEmpty())
return false;
- QSqlTableModelPrivate::CacheMap::Iterator it = d->cache.end();
- while (it != d->cache.constBegin()) {
- --it;
- // rows must be accounted for
- if (it.value().insert()) {
- beginRemoveRows(QModelIndex(), it.key(), it.key());
- it = d->cache.erase(it);
- endRemoveRows();
- } else {
- it = d->cache.erase(it);
- }
- }
+ beginResetModel();
+
+ d->clearCache();
QSqlQuery qu(query, d->db);
setQuery(qu);
@@ -383,8 +374,10 @@ bool QSqlTableModel::select()
if (!qu.isActive() || lastError().isValid()) {
// something went wrong - revert to non-select state
d->initRecordAndPrimaryIndex();
+ endResetModel();
return false;
}
+ endResetModel();
return true;
}