summaryrefslogtreecommitdiffstats
path: root/src/sql/kernel
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2020-06-11 10:49:50 +0200
committerAndy Shaw <andy.shaw@qt.io>2020-06-22 06:54:16 +0200
commit8ba9d2e0220777bc1a2322eeece7fa9a5c55a96d (patch)
tree9231f5edac1f2a23c9a4b3537ab2d6e22cf5421b /src/sql/kernel
parent590ac717a2c073292027111d5c99d68fb17b160c (diff)
Change boundValues() to return a QVariantList
This enables the order of boundValues to be consistent as with a QMap it could have been reordered which can be a problem for positional bindings. [ChangeLog][QtSQL] Changed signature of QSqlQuery::boundValues() to return a QVariantList Fixes: QTBUG-51609 Change-Id: I1c80fa8522fa7352723420b6fc9ec466406315fb Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/sql/kernel')
-rw-r--r--src/sql/kernel/qsqlquery.cpp25
-rw-r--r--src/sql/kernel/qsqlquery.h6
2 files changed, 14 insertions, 17 deletions
diff --git a/src/sql/kernel/qsqlquery.cpp b/src/sql/kernel/qsqlquery.cpp
index 98e65b019c..1e848f4168 100644
--- a/src/sql/kernel/qsqlquery.cpp
+++ b/src/sql/kernel/qsqlquery.cpp
@@ -180,7 +180,7 @@ QSqlQueryPrivate::~QSqlQueryPrivate()
them in the same query.
You can retrieve the values of all the fields in a single variable
- (a map) using boundValues().
+ using boundValues().
\note Not all SQL operations support binding values. Refer to your database
system's documentation to check their availability.
@@ -1144,27 +1144,24 @@ QVariant QSqlQuery::boundValue(int pos) const
}
/*!
- Returns a map of the bound values.
+ \since 6.0
- With named binding, the bound values can be examined in the
- following ways:
+ Returns a list of bound values.
- \snippet sqldatabase/sqldatabase.cpp 14
+ The order of the list is in binding order, irrespective of whether
+ named or positional binding is used.
- With positional binding, the code becomes:
+ The bound values can be examined in the following way:
- \snippet sqldatabase/sqldatabase.cpp 15
+ \snippet sqldatabase/sqldatabase.cpp 14
\sa boundValue(), bindValue(), addBindValue()
*/
-QMap<QString,QVariant> QSqlQuery::boundValues() const
-{
- QMap<QString,QVariant> map;
- const QVector<QVariant> values(d->sqlResult->boundValues());
- for (int i = 0; i < values.count(); ++i)
- map[d->sqlResult->boundValueName(i)] = values.at(i);
- return map;
+QVariantList QSqlQuery::boundValues() const
+{
+ const QVariantList values(d->sqlResult->boundValues());
+ return values;
}
/*!
diff --git a/src/sql/kernel/qsqlquery.h b/src/sql/kernel/qsqlquery.h
index 3be04c492c..b270441273 100644
--- a/src/sql/kernel/qsqlquery.h
+++ b/src/sql/kernel/qsqlquery.h
@@ -43,18 +43,18 @@
#include <QtSql/qtsqlglobal.h>
#include <QtSql/qsqldatabase.h>
#include <QtCore/qstring.h>
+#include <QtCore/qvariant.h>
QT_BEGIN_NAMESPACE
-class QVariant;
class QSqlDriver;
class QSqlError;
class QSqlResult;
class QSqlRecord;
-template <class Key, class T> class QMap;
class QSqlQueryPrivate;
+
class Q_SQL_EXPORT QSqlQuery
{
public:
@@ -107,7 +107,7 @@ public:
void addBindValue(const QVariant& val, QSql::ParamType type = QSql::In);
QVariant boundValue(const QString& placeholder) const;
QVariant boundValue(int pos) const;
- QMap<QString, QVariant> boundValues() const;
+ QVariantList boundValues() const;
QString executedQuery() const;
QVariant lastInsertId() const;
void finish();