From 12909d7c3df74b88382b727cfd3e215914f291ba Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Mon, 13 Feb 2023 20:33:27 +0100 Subject: [PATCH] QSqlDatabase: deprecate QSqlDatabase::exec() The note that QSqlDatabase::exec() is deprecated was added more than 12 years ago so it's time to also mark the function as such. Change-Id: Ic5e7c31b3ff5b21e16e2640548cba1a4baaeeb1c Reviewed-by: Volker Hilsheimer --- src/sql/kernel/qsqldatabase.cpp | 7 +++---- src/sql/kernel/qsqldatabase.h | 3 +++ .../auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp | 12 ++++++++---- .../tst_qsqlrelationaldelegate.cpp | 11 ++++++----- .../tst_qsqlrelationaltablemodel.cpp | 16 +++++++++------- 5 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp index e9a2953fb91..ac6e945ca38 100644 --- a/src/sql/kernel/qsqldatabase.cpp +++ b/src/sql/kernel/qsqldatabase.cpp @@ -389,9 +389,6 @@ void QSqlDatabasePrivate::disable() \li registers a custom-made driver \endtable - \note QSqlDatabase::exec() is deprecated. Use QSqlQuery::exec() - instead. - \note When using transactions, you must start the transaction before you create your query. @@ -692,8 +689,9 @@ QSqlDatabase::~QSqlDatabase() lastError() is not affected. \sa QSqlQuery, lastError() + \deprecated [6.6] Use QSqlQuery::exec() instead. */ - +#if QT_DEPRECATED_SINCE(6, 6) QSqlQuery QSqlDatabase::exec(const QString & query) const { QSqlQuery r(d->driver->createResult()); @@ -703,6 +701,7 @@ QSqlQuery QSqlDatabase::exec(const QString & query) const } return r; } +#endif /*! Opens the database connection using the current connection diff --git a/src/sql/kernel/qsqldatabase.h b/src/sql/kernel/qsqldatabase.h index 789f3e0ea4d..1fb1eb3966c 100644 --- a/src/sql/kernel/qsqldatabase.h +++ b/src/sql/kernel/qsqldatabase.h @@ -48,7 +48,10 @@ public: QStringList tables(QSql::TableType type = QSql::Tables) const; QSqlIndex primaryIndex(const QString& tablename) const; QSqlRecord record(const QString& tablename) const; +#if QT_DEPRECATED_SINCE(6, 6) + QT_DEPRECATED_VERSION_X_6_6("QSqlQuery::exec() instead.") QSqlQuery exec(const QString& query = QString()) const; +#endif QSqlError lastError() const; bool isValid() const; diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp index 582d60182f8..c59e3a2985a 100644 --- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp @@ -375,11 +375,15 @@ void tst_QSqlQuery::dropTestTables(QSqlDatabase db) if (dbType == QSqlDriver::MSSqlServer || dbType == QSqlDriver::Oracle) tablenames << qTableName("qtest_longstr", __FILE__, db); - if (dbType == QSqlDriver::MSSqlServer) - db.exec("DROP PROCEDURE " + qTableName("test141895_proc", __FILE__, db)); + if (dbType == QSqlDriver::MSSqlServer) { + QSqlQuery q(db); + q.exec("DROP PROCEDURE " + qTableName("test141895_proc", __FILE__, db)); + } - if (dbType == QSqlDriver::MySqlServer) - db.exec("DROP PROCEDURE IF EXISTS " + qTableName("bug6852_proc", __FILE__, db)); + if (dbType == QSqlDriver::MySqlServer) { + QSqlQuery q(db); + q.exec("DROP PROCEDURE IF EXISTS " + qTableName("bug6852_proc", __FILE__, db)); + } tst_Databases::safeDropTables(db, tablenames); diff --git a/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp b/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp index 1a9f8310c99..80a3a6d84e4 100644 --- a/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp +++ b/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp @@ -78,15 +78,16 @@ void tst_QSqlRelationalDelegate::recreateTestTables(QSqlDatabase db) void tst_QSqlRelationalDelegate::initTestCase() { foreach (const QString &dbname, dbs.dbNames) { - QSqlDatabase db=QSqlDatabase::database(dbname); + QSqlDatabase db = QSqlDatabase::database(dbname); + QSqlQuery q(db); QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db); if (dbType == QSqlDriver::Interbase) { - db.exec("SET DIALECT 3"); + q.exec("SET DIALECT 3"); } else if (dbType == QSqlDriver::MSSqlServer) { - db.exec("SET ANSI_DEFAULTS ON"); - db.exec("SET IMPLICIT_TRANSACTIONS OFF"); + q.exec("SET ANSI_DEFAULTS ON"); + q.exec("SET IMPLICIT_TRANSACTIONS OFF"); } else if (dbType == QSqlDriver::PostgreSQL) { - db.exec("set client_min_messages='warning'"); + q.exec("set client_min_messages='warning'"); } recreateTestTables(db); } diff --git a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp index fdf82be4c9b..5277d7b371b 100644 --- a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp +++ b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp @@ -134,15 +134,16 @@ void tst_QSqlRelationalTableModel::recreateTestTables(QSqlDatabase db) void tst_QSqlRelationalTableModel::initTestCase() { foreach (const QString &dbname, dbs.dbNames) { - QSqlDatabase db=QSqlDatabase::database(dbname); + QSqlDatabase db = QSqlDatabase::database(dbname); + QSqlQuery q(db); QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db); if (dbType == QSqlDriver::Interbase) { - db.exec("SET DIALECT 3"); + q.exec("SET DIALECT 3"); } else if (dbType == QSqlDriver::MSSqlServer) { - db.exec("SET ANSI_DEFAULTS ON"); - db.exec("SET IMPLICIT_TRANSACTIONS OFF"); + q.exec("SET ANSI_DEFAULTS ON"); + q.exec("SET IMPLICIT_TRANSACTIONS OFF"); } else if (dbType == QSqlDriver::PostgreSQL) { - db.exec("set client_min_messages='warning'"); + q.exec("set client_min_messages='warning'"); } recreateTestTables(db); } @@ -167,8 +168,9 @@ void tst_QSqlRelationalTableModel::dropTestTables( QSqlDatabase db ) qTableName("casetest1", __FILE__, db)}; tst_Databases::safeDropTables( db, tableNames ); - db.exec("DROP SCHEMA " + qTableName("QTBUG_5373", __FILE__, db) + " CASCADE"); - db.exec("DROP SCHEMA " + qTableName("QTBUG_5373_s2", __FILE__, db) + " CASCADE"); + QSqlQuery q(db); + q.exec("DROP SCHEMA " + qTableName("QTBUG_5373", __FILE__, db) + " CASCADE"); + q.exec("DROP SCHEMA " + qTableName("QTBUG_5373_s2", __FILE__, db) + " CASCADE"); } void tst_QSqlRelationalTableModel::init()