summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.cpp4
-rw-r--r--src/sql/models/qsqltablemodel.cpp7
-rw-r--r--src/sql/models/qsqltablemodel_p.h1
3 files changed, 8 insertions, 4 deletions
diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp
index e12976ef24..3a8c12085f 100644
--- a/src/sql/models/qsqlrelationaltablemodel.cpp
+++ b/src/sql/models/qsqlrelationaltablemodel.cpp
@@ -299,9 +299,7 @@ void QSqlRelationalTableModelPrivate::revertCachedRow(int row)
int QSqlRelationalTableModelPrivate::nameToIndex(const QString &name) const
{
- QString fieldname = name;
- if (db.driver()->isIdentifierEscaped(fieldname, QSqlDriver::FieldName))
- fieldname = db.driver()->stripDelimiters(fieldname, QSqlDriver::FieldName);
+ QString fieldname = strippedFieldName(name);
int idx = baseRec.indexOf(fieldname);
if (idx == -1) {
// If the name is an alias we can find it here.
diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp
index ff32533440..0d062e250f 100644
--- a/src/sql/models/qsqltablemodel.cpp
+++ b/src/sql/models/qsqltablemodel.cpp
@@ -68,10 +68,15 @@ QSqlRecord QSqlTableModelPrivate::record(const QVector<QVariant> &values) const
int QSqlTableModelPrivate::nameToIndex(const QString &name) const
{
+ return rec.indexOf(strippedFieldName(name));
+}
+
+QString QSqlTableModelPrivate::strippedFieldName(const QString &name) const
+{
QString fieldname = name;
if (db.driver()->isIdentifierEscaped(fieldname, QSqlDriver::FieldName))
fieldname = db.driver()->stripDelimiters(fieldname, QSqlDriver::FieldName);
- return rec.indexOf(fieldname);
+ return fieldname;
}
void QSqlTableModelPrivate::initRecordAndPrimaryIndex()
diff --git a/src/sql/models/qsqltablemodel_p.h b/src/sql/models/qsqltablemodel_p.h
index 56fd839a0c..15cbe8ef7a 100644
--- a/src/sql/models/qsqltablemodel_p.h
+++ b/src/sql/models/qsqltablemodel_p.h
@@ -77,6 +77,7 @@ public:
const QSqlRecord &rec, const QSqlRecord &whereValues);
virtual void revertCachedRow(int row);
virtual int nameToIndex(const QString &name) const;
+ QString strippedFieldName(const QString &name) const;
void initRecordAndPrimaryIndex();
QSqlDatabase db;