diff options
-rw-r--r-- | src/sql/kernel/qsqldriver.cpp | 23 | ||||
-rw-r--r-- | src/sql/kernel/qsqldriver.h | 5 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/sql/kernel/qsqldriver.cpp b/src/sql/kernel/qsqldriver.cpp index ec1628291d..62ec4e7e1f 100644 --- a/src/sql/kernel/qsqldriver.cpp +++ b/src/sql/kernel/qsqldriver.cpp @@ -789,4 +789,27 @@ QSql::NumericalPrecisionPolicy QSqlDriver::numericalPrecisionPolicy() const return d_func()->precisionPolicy; } +/*! + \since 5.0 + \internal + + Tries to cancel the running query, if the underlying driver has the + capability to cancel queries. Returns true on success, otherwise false. + + This function can be called from a different thread. + + If you use this function as a slot, you need to use a Qt::DirectConnection + from a different thread. + + Reimplement this function to support canceling running queries in + your own QSqlDriver subclass. It must be implemented in a thread-safe + manner. + + \sa QSqlDriver::hasFeature() +*/ +bool QSqlDriver::cancelQuery() +{ + return false; +} + QT_END_NAMESPACE diff --git a/src/sql/kernel/qsqldriver.h b/src/sql/kernel/qsqldriver.h index 921e1a4993..f0176700a9 100644 --- a/src/sql/kernel/qsqldriver.h +++ b/src/sql/kernel/qsqldriver.h @@ -71,7 +71,7 @@ public: enum DriverFeature { Transactions, QuerySize, BLOB, Unicode, PreparedQueries, NamedPlaceholders, PositionalPlaceholders, LastInsertId, BatchOperations, SimpleLocking, LowPrecisionNumbers, - EventNotifications, FinishQuery, MultipleResultSets }; + EventNotifications, FinishQuery, MultipleResultSets, CancelQuery }; enum StatementType { WhereStatement, SelectStatement, UpdateStatement, InsertStatement, DeleteStatement }; @@ -120,6 +120,9 @@ public: void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy); QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const; +public Q_SLOTS: + virtual bool cancelQuery(); + Q_SIGNALS: void notification(const QString &name); void notification(const QString &name, QSqlDriver::NotificationSource source, const QVariant &payload); |