summaryrefslogtreecommitdiffstats
path: root/src/sql/kernel
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2013-03-21 11:34:03 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-02 14:31:59 +0200
commit8dfe1385b5f05b7242802a72897258a63af1ca1d (patch)
tree20dda6ac4482ab962f62b9c99eefe383364d1237 /src/sql/kernel
parent4131bfb2c28d0554805bbfcf009b422bda820c09 (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.cpp15
-rw-r--r--src/sql/kernel/qsqlrecord.h1
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();