diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sql/models/qsqlquerymodel.cpp | 3 | ||||
-rw-r--r-- | src/sql/models/qsqltablemodel.cpp | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/sql/models/qsqlquerymodel.cpp b/src/sql/models/qsqlquerymodel.cpp index 341804f1ae..fefb87dcf5 100644 --- a/src/sql/models/qsqlquerymodel.cpp +++ b/src/sql/models/qsqlquerymodel.cpp @@ -591,7 +591,8 @@ QModelIndex QSqlQueryModel::indexInQuery(const QModelIndex &item) const { Q_D(const QSqlQueryModel); if (item.column() < 0 || item.column() >= d->rec.count() - || !d->rec.isGenerated(item.column())) + || !d->rec.isGenerated(item.column()) + || item.column() >= d->colOffsets.size()) return QModelIndex(); return createIndex(item.row(), item.column() - d->colOffsets[item.column()], item.internalPointer()); diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp index 20d2be36e1..f7198978dd 100644 --- a/src/sql/models/qsqltablemodel.cpp +++ b/src/sql/models/qsqltablemodel.cpp @@ -97,6 +97,7 @@ void QSqlTableModelPrivate::initRecordAndPrimaryIndex() { rec = db.record(tableName); primaryIndex = db.primaryIndex(tableName); + initColOffsets(rec.count()); } void QSqlTableModelPrivate::clear() @@ -332,7 +333,6 @@ void QSqlTableModel::setTable(const QString &tableName) clear(); d->tableName = tableName; d->initRecordAndPrimaryIndex(); - d->initColOffsets(d->rec.count()); if (d->rec.count() == 0) d->error = QSqlError(QLatin1String("Unable to find table ") + d->tableName, QString(), |