use nameToIndex() instead of duplicating code

Change-Id: If55541aa8a2345f90984d8b82bee0c3ebb01a605
Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
bb10
Mark Brand 2011-07-06 17:08:50 +02:00 committed by Qt by Nokia
parent 42d1cf0bbe
commit 7785227214
2 changed files with 7 additions and 6 deletions

View File

@ -303,7 +303,12 @@ int QSqlRelationalTableModelPrivate::nameToIndex(const QString &name) const
QString fieldname = name;
if (db.driver()->isIdentifierEscaped(fieldname, QSqlDriver::FieldName))
fieldname = db.driver()->stripDelimiters(fieldname, QSqlDriver::FieldName);
return baseRec.indexOf(fieldname);
int idx = baseRec.indexOf(fieldname);
if (idx == -1) {
// If the name is an alias we can find it here.
idx = QSqlTableModelPrivate::nameToIndex(name);
}
return idx;
}
void QSqlRelationalTableModelPrivate::clearEditBuffer()

View File

@ -1344,12 +1344,8 @@ bool QSqlTableModel::setRecord(int row, const QSqlRecord &record)
QSqlTableModelPrivate::clearGenerated(mrow.rec);
mrow.primaryValues = d->primaryValues(indexInQuery(createIndex(row, 0)).row());
}
QString fieldName;
for (int i = 0; i < record.count(); ++i) {
fieldName = record.fieldName(i);
if (d->db.driver()->isIdentifierEscaped(fieldName, QSqlDriver::FieldName))
fieldName = d->db.driver()->stripDelimiters(fieldName, QSqlDriver::FieldName);
int idx = mrow.rec.indexOf(fieldName);
int idx = d->nameToIndex(record.fieldName(i));
if (idx == -1) {
isOk = false;
} else {