From 5b07e3de3fe5335d9338c65ca40cfe656a389167 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Tue, 17 Dec 2024 19:54:55 +0100 Subject: QSqlDriver: return the connection name of the assoicated QSqlDatabase A QSqlDriver instance is directly bound to a QSqlDatabase object. But there was no way to get the QSqlDatabase out of a QSqlQuery/QSqlDriver. Fix it by storing the connection name also in the driver during creation and add a getter for it. [ChangeLog][QtSql][QSqlDriver] Added connectionName() which returns the connection name of the associated QSqlDatabase instance. Pick-to: 6.9 Task-number: QTBUG-123603 Change-Id: If78b85413cf6ca965ff6bf9f3600cb54169b5569 Reviewed-by: Volker Hilsheimer --- src/sql/kernel/qsqldatabase.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/sql/kernel/qsqldatabase.cpp') diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp index e44533291a3..0a54529679e 100644 --- a/src/sql/kernel/qsqldatabase.cpp +++ b/src/sql/kernel/qsqldatabase.cpp @@ -110,8 +110,11 @@ QSqlDatabasePrivate::QSqlDatabasePrivate(const QSqlDatabasePrivate &other) : ref connOptions = other.connOptions; driver = other.driver; precisionPolicy = other.precisionPolicy; - if (driver) + if (driver) { driver->setNumericalPrecisionPolicy(other.driver->numericalPrecisionPolicy()); + auto drvPriv = static_cast(QObjectPrivate::get(driver)); + drvPriv->connectionName = connName; + } } QSqlDatabasePrivate::~QSqlDatabasePrivate() @@ -169,6 +172,8 @@ void QSqlDatabasePrivate::addDatabase(const QSqlDatabase &db, const QString &nam } sqlGlobals->connections.insert(name, db); db.d->connName = name; + auto drvPriv = static_cast(QObjectPrivate::get(db.d->driver)); + drvPriv->connectionName = name; } /*! \internal -- cgit v1.2.3