QSqlQuery: add boundValueName()/boundValueNames()
[ChangeLog][SQL][SqlQuery] Added two new functions boundValueName()/boundValueNames() to return the names of the bound values. Fixes: QTBUG-97847 Change-Id: I8df5f15e8df13141a34d38b0a2e13b37f4e7829c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
9db9a836fb
commit
3983babd71
@ -1138,6 +1138,7 @@ QVariant QSqlQuery::boundValue(const QString& placeholder) const
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
Returns the value for the placeholder at position \a pos.
|
Returns the value for the placeholder at position \a pos.
|
||||||
|
\sa boundValues()
|
||||||
*/
|
*/
|
||||||
QVariant QSqlQuery::boundValue(int pos) const
|
QVariant QSqlQuery::boundValue(int pos) const
|
||||||
{
|
{
|
||||||
@ -1156,7 +1157,7 @@ QVariant QSqlQuery::boundValue(int pos) const
|
|||||||
|
|
||||||
\snippet sqldatabase/sqldatabase.cpp 14
|
\snippet sqldatabase/sqldatabase.cpp 14
|
||||||
|
|
||||||
\sa boundValue(), bindValue(), addBindValue()
|
\sa boundValue(), bindValue(), addBindValue(), boundValueNames()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
QVariantList QSqlQuery::boundValues() const
|
QVariantList QSqlQuery::boundValues() const
|
||||||
@ -1165,6 +1166,36 @@ QVariantList QSqlQuery::boundValues() const
|
|||||||
return values;
|
return values;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\since 6.6
|
||||||
|
|
||||||
|
Returns the names of all bound values.
|
||||||
|
|
||||||
|
The order of the list is in binding order, irrespective of whether
|
||||||
|
named or positional binding is used.
|
||||||
|
|
||||||
|
\sa boundValues(), boundValueName()
|
||||||
|
*/
|
||||||
|
QStringList QSqlQuery::boundValueNames() const
|
||||||
|
{
|
||||||
|
return d->sqlResult->boundValueNames();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\since 6.6
|
||||||
|
|
||||||
|
Returns the bound value name at position \a pos.
|
||||||
|
|
||||||
|
The order of the list is in binding order, irrespective of whether
|
||||||
|
named or positional binding is used.
|
||||||
|
|
||||||
|
\sa boundValueNames()
|
||||||
|
*/
|
||||||
|
QString QSqlQuery::boundValueName(int pos) const
|
||||||
|
{
|
||||||
|
return d->sqlResult->boundValueName(pos);
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Returns the last query that was successfully executed.
|
Returns the last query that was successfully executed.
|
||||||
|
|
||||||
|
@ -89,6 +89,8 @@ public:
|
|||||||
QVariant boundValue(const QString& placeholder) const;
|
QVariant boundValue(const QString& placeholder) const;
|
||||||
QVariant boundValue(int pos) const;
|
QVariant boundValue(int pos) const;
|
||||||
QVariantList boundValues() const;
|
QVariantList boundValues() const;
|
||||||
|
QStringList boundValueNames() const;
|
||||||
|
QString boundValueName(int pos) const;
|
||||||
QString executedQuery() const;
|
QString executedQuery() const;
|
||||||
QVariant lastInsertId() const;
|
QVariant lastInsertId() const;
|
||||||
void finish();
|
void finish();
|
||||||
|
@ -837,11 +837,25 @@ void QSqlResult::resetBindCount()
|
|||||||
d->resetBindCount();
|
d->resetBindCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Returns the names of all bound values.
|
||||||
|
|
||||||
|
\sa boundValue(), boundValueName()
|
||||||
|
*/
|
||||||
|
QStringList QSqlResult::boundValueNames() const
|
||||||
|
{
|
||||||
|
Q_D(const QSqlResult);
|
||||||
|
QList<QString> ret;
|
||||||
|
for (const QHolder &holder : std::as_const(d->holders))
|
||||||
|
ret.push_back(holder.holderName);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Returns the name of the bound value at position \a index in the
|
Returns the name of the bound value at position \a index in the
|
||||||
current record (row).
|
current record (row).
|
||||||
|
|
||||||
\sa boundValue()
|
\sa boundValue(), boundValueNames()
|
||||||
*/
|
*/
|
||||||
QString QSqlResult::boundValueName(int index) const
|
QString QSqlResult::boundValueName(int index) const
|
||||||
{
|
{
|
||||||
|
@ -69,8 +69,10 @@ protected:
|
|||||||
QSql::ParamType bindValueType(const QString& placeholder) const;
|
QSql::ParamType bindValueType(const QString& placeholder) const;
|
||||||
QSql::ParamType bindValueType(int pos) const;
|
QSql::ParamType bindValueType(int pos) const;
|
||||||
int boundValueCount() const;
|
int boundValueCount() const;
|
||||||
|
// ### Qt 7 - don't return a non-const reference from a const function
|
||||||
QList<QVariant> &boundValues() const;
|
QList<QVariant> &boundValues() const;
|
||||||
QString executedQuery() const;
|
QString executedQuery() const;
|
||||||
|
QStringList boundValueNames() const;
|
||||||
QString boundValueName(int pos) const;
|
QString boundValueName(int pos) const;
|
||||||
void clear();
|
void clear();
|
||||||
bool hasOutValues() const;
|
bool hasOutValues() const;
|
||||||
|
@ -2132,6 +2132,12 @@ void tst_QSqlQuery::prepare_bind_exec()
|
|||||||
QCOMPARE(m.size(), qsizetype(2));
|
QCOMPARE(m.size(), qsizetype(2));
|
||||||
QCOMPARE(m.at(0).toInt(), i);
|
QCOMPARE(m.at(0).toInt(), i);
|
||||||
QCOMPARE(m.at(1).toString(), values[i]);
|
QCOMPARE(m.at(1).toString(), values[i]);
|
||||||
|
const QStringList n = q.boundValueNames();
|
||||||
|
QCOMPARE(n.size(), 2);
|
||||||
|
QCOMPARE(n.at(0), ":id");
|
||||||
|
QCOMPARE(n.at(1), ":name");
|
||||||
|
QCOMPARE(q.boundValueName(0), ":id");
|
||||||
|
QCOMPARE(q.boundValueName(1), ":name");
|
||||||
}
|
}
|
||||||
|
|
||||||
q.bindValue(":id", 8);
|
q.bindValue(":id", 8);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user