diff options
Diffstat (limited to 'src/sql/kernel/qsqlquery.cpp')
-rw-r--r-- | src/sql/kernel/qsqlquery.cpp | 54 |
1 files changed, 42 insertions, 12 deletions
diff --git a/src/sql/kernel/qsqlquery.cpp b/src/sql/kernel/qsqlquery.cpp index d51d596d142..b78566e8285 100644 --- a/src/sql/kernel/qsqlquery.cpp +++ b/src/sql/kernel/qsqlquery.cpp @@ -243,12 +243,18 @@ QSqlQuery::QSqlQuery(QSqlResult *result) QSqlQuery::~QSqlQuery() { - if (!d->ref.deref()) + if (d && !d->ref.deref()) delete d; } +#if QT_DEPRECATED_SINCE(6, 2) /*! Constructs a copy of \a other. + + \obsolete QSqlQuery cannot be meaningfully copied. Prepared + statements, bound values and so on will not work correctly, depending + on your database driver (for instance, changing the copy will affect + the original). Treat QSqlQuery as a move-only type instead. */ QSqlQuery::QSqlQuery(const QSqlQuery& other) @@ -258,6 +264,41 @@ QSqlQuery::QSqlQuery(const QSqlQuery& other) } /*! + Assigns \a other to this object. + + \obsolete QSqlQuery cannot be meaningfully copied. Prepared + statements, bound values and so on will not work correctly, depending + on your database driver (for instance, changing the copy will affect + the original). Treat QSqlQuery as a move-only type instead. +*/ + +QSqlQuery& QSqlQuery::operator=(const QSqlQuery& other) +{ + qAtomicAssign(d, other.d); + return *this; +} +#endif + +/*! + \fn QSqlQuery::QSqlQuery(QSqlQuery &&other) noexcept + \since 6.2 + Move-constructs a QSqlQuery from \a other. +*/ + +/*! + \fn QSqlQuery &QSqlQuery::operator=(QSqlQuery &&other) noexcept + \since 6.2 + Move-assigns \a other to this object. +*/ + +/*! + \fn void QSqlQuery::swap(QSqlQuery &other) noexcept + \since 6.2 + Swaps \a other to this object. This operation is very + fast and never fails. +*/ + +/*! \internal */ static void qInit(QSqlQuery *q, const QString& query, const QSqlDatabase &db) @@ -299,17 +340,6 @@ QSqlQuery::QSqlQuery(const QSqlDatabase &db) qInit(this, QString(), db); } - -/*! - Assigns \a other to this object. -*/ - -QSqlQuery& QSqlQuery::operator=(const QSqlQuery& other) -{ - qAtomicAssign(d, other.d); - return *this; -} - /*! Returns \c true if the query is not \l{isActive()}{active}, the query is not positioned on a valid record, |