diff --git a/src/sql/kernel/qsqlquery.cpp b/src/sql/kernel/qsqlquery.cpp index d2147fc9957..778e04ceb65 100644 --- a/src/sql/kernel/qsqlquery.cpp +++ b/src/sql/kernel/qsqlquery.cpp @@ -1270,31 +1270,33 @@ QSql::NumericalPrecisionPolicy QSqlQuery::numericalPrecisionPolicy() const } /*! - Enables or disables the positional binding for this query, depending - on \a enable. - This is useful when the query contains a '?' which must not be handled - as a positional binding parameter but, for example, as a JSON operator - for a Postgres database. + Enables or disables the positional \l {Approaches to Binding Values}{binding} + for this query, depending on \a enable (default is \c true). + Disabling positional bindings is useful if the query itself contains a '?' + which must not be handled as a positional binding parameter but, for example, + as a JSON operator for a PostgreSQL database. + This function will have no effect when the database has native - support for positional bindings with question marks. + support for positional bindings with question marks (see also + \l{QSqlDriver::PositionalPlaceholders}). \since 6.7 - \sa positionalBindingEnabled() + \sa isPositionalBindingEnabled() */ -void QSqlQuery::enablePositionalBinding(bool enable) +void QSqlQuery::setPositionalBindingEnabled(bool enable) { - d->sqlResult->enablePositionalBinding(enable); + d->sqlResult->setPositionalBindingEnabled(enable); } /*! - Returns true when the positional binding is currently enabled. + Returns \c true if the positional binding is currently enabled. \since 6.7 - \sa enablePositionalBinding() + \sa setPositionalBindingEnabled() */ -bool QSqlQuery::positionalBindingEnabled() const +bool QSqlQuery::isPositionalBindingEnabled() const { - return d->sqlResult->positionalBindingEnabled(); + return d->sqlResult->isPositionalBindingEnabled(); } diff --git a/src/sql/kernel/qsqlquery.h b/src/sql/kernel/qsqlquery.h index e0071575d88..c02c9d54903 100644 --- a/src/sql/kernel/qsqlquery.h +++ b/src/sql/kernel/qsqlquery.h @@ -69,8 +69,8 @@ public: void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy); QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const; - void enablePositionalBinding(bool enable); - bool positionalBindingEnabled() const; + void setPositionalBindingEnabled(bool enable); + bool isPositionalBindingEnabled() const; bool seek(int i, bool relative = false); bool next(); diff --git a/src/sql/kernel/qsqlresult.cpp b/src/sql/kernel/qsqlresult.cpp index 97e2757f0b0..cdf17b0dac4 100644 --- a/src/sql/kernel/qsqlresult.cpp +++ b/src/sql/kernel/qsqlresult.cpp @@ -1016,7 +1016,7 @@ QSql::NumericalPrecisionPolicy QSqlResult::numericalPrecisionPolicy() const /*! \internal */ -void QSqlResult::enablePositionalBinding(bool enable) +void QSqlResult::setPositionalBindingEnabled(bool enable) { Q_D(QSqlResult); d->positionalBindingEnabled = enable; @@ -1024,7 +1024,7 @@ void QSqlResult::enablePositionalBinding(bool enable) /*! \internal */ -bool QSqlResult::positionalBindingEnabled() const +bool QSqlResult::isPositionalBindingEnabled() const { Q_D(const QSqlResult); return d->positionalBindingEnabled; diff --git a/src/sql/kernel/qsqlresult.h b/src/sql/kernel/qsqlresult.h index 2307c12b6f4..42a4d8b686d 100644 --- a/src/sql/kernel/qsqlresult.h +++ b/src/sql/kernel/qsqlresult.h @@ -102,8 +102,8 @@ protected: virtual void detachFromResultSet(); virtual void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy policy); QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const; - void enablePositionalBinding(bool enable); - bool positionalBindingEnabled() const; + void setPositionalBindingEnabled(bool enable); + bool isPositionalBindingEnabled() const; virtual bool nextResult(); void resetBindCount(); // HACK diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp index 70b71d66541..53f2ea48016 100644 --- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp @@ -5067,7 +5067,8 @@ void tst_QSqlQuery::positionalBindingEnabled() QVERIFY_SQL(qry, exec("CREATE TABLE " + tableName + " (integer_col integer)")); QVERIFY_SQL(qry, exec("INSERT INTO " + tableName + "(integer_col) VALUES(42)")); - qry.enablePositionalBinding(true); + qry.setPositionalBindingEnabled(true); + QCOMPARE(qry.isPositionalBindingEnabled(), true); QVERIFY_SQL(qry, prepare("SELECT integer_col FROM " + tableName + " WHERE integer_col = :integer_val")); qry.bindValue(":integer_val", 42); QVERIFY_SQL(qry, exec()); @@ -5079,7 +5080,8 @@ void tst_QSqlQuery::positionalBindingEnabled() QVERIFY_SQL(qry, next()); QCOMPARE(qry.value(0).toInt(), 42); - qry.enablePositionalBinding(false); + qry.setPositionalBindingEnabled(false); + QCOMPARE(qry.isPositionalBindingEnabled(), false); QVERIFY_SQL(qry, prepare("SELECT integer_col FROM " + tableName + " WHERE integer_col = :integer_val")); qry.bindValue(":integer_val", 42); QVERIFY_SQL(qry, exec()); @@ -5109,7 +5111,7 @@ void tst_QSqlQuery::psqlJsonOperator() const QString &tableName = ts.tableName(); QSqlQuery qry(db); - qry.enablePositionalBinding(false); // don't allow / handle '?' as placeholder + qry.setPositionalBindingEnabled(false); // don't allow / handle '?' as placeholder QVERIFY_SQL(qry, exec("CREATE TABLE " + tableName + " (integer_col integer, json_col jsonb)")); QVERIFY_SQL(qry, exec("INSERT INTO " + tableName + "(integer_col, json_col) VALUES(42, '{\"a\": [1, 2]}')")); QVERIFY_SQL(qry, exec("INSERT INTO " + tableName + "(integer_col, json_col) VALUES(43, '{\"b\": [3, 4]}')"));