diff options
author | Mark Brand <mabrand@mabrand.nl> | 2013-03-21 11:34:03 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-04-02 14:31:59 +0200 |
commit | 8dfe1385b5f05b7242802a72897258a63af1ca1d (patch) | |
tree | 20dda6ac4482ab962f62b9c99eefe383364d1237 /src/sql/kernel | |
parent | 4131bfb2c28d0554805bbfcf009b422bda820c09 (diff) |
QSqlTableModel: expose methods for getting primary values
These methods are very useful in subclasses.
Change-Id: Ifdfee9d90cbdad97f349e46b587582f1d9e7cd7a
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Diffstat (limited to 'src/sql/kernel')
-rw-r--r-- | src/sql/kernel/qsqlrecord.cpp | 15 | ||||
-rw-r--r-- | src/sql/kernel/qsqlrecord.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/sql/kernel/qsqlrecord.cpp b/src/sql/kernel/qsqlrecord.cpp index ad6505c096..4cac5028c3 100644 --- a/src/sql/kernel/qsqlrecord.cpp +++ b/src/sql/kernel/qsqlrecord.cpp @@ -524,4 +524,19 @@ QDebug operator<<(QDebug dbg, const QSqlRecord &r) } #endif +/*! + \since 5.1 + Returns a record containing the fields represented in \a keyFields set to values + that match by field name. +*/ +QSqlRecord QSqlRecord::keyValues(const QSqlRecord &keyFields) const +{ + QSqlRecord retValues(keyFields); + + for (int i = retValues.count() - 1; i >= 0; --i) + retValues.setValue(i, value(retValues.fieldName(i))); + + return retValues; +} + QT_END_NAMESPACE diff --git a/src/sql/kernel/qsqlrecord.h b/src/sql/kernel/qsqlrecord.h index bc8c6a8a57..7799b96588 100644 --- a/src/sql/kernel/qsqlrecord.h +++ b/src/sql/kernel/qsqlrecord.h @@ -95,6 +95,7 @@ public: void clear(); void clearValues(); int count() const; + QSqlRecord keyValues(const QSqlRecord &keyFields) const; private: void detach(); |