summaryrefslogtreecommitdiffstats
path: root/src/sql/kernel/qsqlquery.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sql/kernel/qsqlquery.cpp')
-rw-r--r--src/sql/kernel/qsqlquery.cpp54
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,