From 97c6fd22d2dcaf65fc41c2db22f83b5270968062 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Tue, 9 Apr 2013 07:31:53 +0200 Subject: Use Q_DECLARE_PRIVATE for Oracle and DB2 plugins This completes the change started with 0bdc86d9ef7be8e27598d245c6ca8026f08aff12 by providing the implementation for the Oracle and DB2 sqldrivers Change-Id: Ia14415c6d7dea51f1369a81236f79aff892b3af7 Reviewed-by: Mark Brand --- src/sql/drivers/db2/qsql_db2.cpp | 17 +++++++++++++---- src/sql/drivers/db2/qsql_db2_p.h | 2 +- src/sql/drivers/oci/qsql_oci.cpp | 21 ++++++++++++++++----- src/sql/drivers/oci/qsql_oci_p.h | 3 +-- 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/sql/drivers/db2/qsql_db2.cpp b/src/sql/drivers/db2/qsql_db2.cpp index 25da004db8..e58710e0f5 100644 --- a/src/sql/drivers/db2/qsql_db2.cpp +++ b/src/sql/drivers/db2/qsql_db2.cpp @@ -1132,15 +1132,14 @@ void QDB2Result::detachFromResultSet() /************************************/ QDB2Driver::QDB2Driver(QObject* parent) - : QSqlDriver(parent) + : QSqlDriver(*new QDB2DriverPrivate, parent) { - d = new QDB2DriverPrivate; } QDB2Driver::QDB2Driver(Qt::HANDLE env, Qt::HANDLE con, QObject* parent) - : QSqlDriver(parent) + : QSqlDriver(*new QDB2DriverPrivate, parent) { - d = new QDB2DriverPrivate; + Q_D(QDB2Driver); d->hEnv = (SQLHANDLE)env; d->hDbc = (SQLHANDLE)con; if (env && con) { @@ -1157,6 +1156,7 @@ QDB2Driver::~QDB2Driver() bool QDB2Driver::open(const QString& db, const QString& user, const QString& password, const QString& host, int port, const QString& connOpts) { + Q_D(QDB2Driver); if (isOpen()) close(); SQLRETURN r; @@ -1259,6 +1259,7 @@ bool QDB2Driver::open(const QString& db, const QString& user, const QString& pas void QDB2Driver::close() { + Q_D(QDB2Driver); SQLRETURN r; if (d->hDbc) { // Open statements/descriptors handles are automatically cleaned up by SQLDisconnect @@ -1285,11 +1286,13 @@ void QDB2Driver::close() QSqlResult *QDB2Driver::createResult() const { + Q_D(const QDB2Driver); return new QDB2Result(this, d); } QSqlRecord QDB2Driver::record(const QString& tableName) const { + Q_D(const QDB2Driver); QSqlRecord fil; if (!isOpen()) return fil; @@ -1363,6 +1366,7 @@ QSqlRecord QDB2Driver::record(const QString& tableName) const QStringList QDB2Driver::tables(QSql::TableType type) const { + Q_D(const QDB2Driver); QStringList tl; if (!isOpen()) return tl; @@ -1434,6 +1438,7 @@ QStringList QDB2Driver::tables(QSql::TableType type) const QSqlIndex QDB2Driver::primaryIndex(const QString& tablename) const { + Q_D(const QDB2Driver); QSqlIndex index(tablename); if (!isOpen()) return index; @@ -1535,6 +1540,7 @@ bool QDB2Driver::beginTransaction() bool QDB2Driver::commitTransaction() { + Q_D(QDB2Driver); if (!isOpen()) { qWarning("QDB2Driver::commitTransaction: Database not open"); return false; @@ -1552,6 +1558,7 @@ bool QDB2Driver::commitTransaction() bool QDB2Driver::rollbackTransaction() { + Q_D(QDB2Driver); if (!isOpen()) { qWarning("QDB2Driver::rollbackTransaction: Database not open"); return false; @@ -1569,6 +1576,7 @@ bool QDB2Driver::rollbackTransaction() bool QDB2Driver::setAutoCommit(bool autoCommit) { + Q_D(QDB2Driver); SQLUINTEGER ac = autoCommit ? SQL_AUTOCOMMIT_ON : SQL_AUTOCOMMIT_OFF; SQLRETURN r = SQLSetConnectAttr(d->hDbc, SQL_ATTR_AUTOCOMMIT, @@ -1627,6 +1635,7 @@ QString QDB2Driver::formatValue(const QSqlField &field, bool trimStrings) const QVariant QDB2Driver::handle() const { + Q_D(const QDB2Driver); return QVariant(qRegisterMetaType("SQLHANDLE"), &d->hDbc); } diff --git a/src/sql/drivers/db2/qsql_db2_p.h b/src/sql/drivers/db2/qsql_db2_p.h index 68563448ed..89b07c9c83 100644 --- a/src/sql/drivers/db2/qsql_db2_p.h +++ b/src/sql/drivers/db2/qsql_db2_p.h @@ -101,6 +101,7 @@ private: class Q_EXPORT_SQLDRIVER_DB2 QDB2Driver : public QSqlDriver { + Q_DECLARE_PRIVATE(QDB2Driver) Q_OBJECT public: explicit QDB2Driver(QObject* parent = 0); @@ -127,7 +128,6 @@ public: private: bool setAutoCommit(bool autoCommit); - QDB2DriverPrivate* d; }; QT_END_NAMESPACE diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp index 6eb6703ebf..fe9ae42e6f 100644 --- a/src/sql/drivers/oci/qsql_oci.cpp +++ b/src/sql/drivers/oci/qsql_oci.cpp @@ -2088,10 +2088,9 @@ void QOCIResult::virtual_hook(int id, void *data) QOCIDriver::QOCIDriver(QObject* parent) - : QSqlDriver(parent) + : QSqlDriver(*new QOCIDriverPrivate, parent) { - d = new QOCIDriverPrivate(); - + Q_D(QOCIDriver); #ifdef QOCI_THREADED const ub4 mode = OCI_UTF16 | OCI_OBJECT | OCI_THREADED; #else @@ -2116,9 +2115,9 @@ QOCIDriver::QOCIDriver(QObject* parent) } QOCIDriver::QOCIDriver(OCIEnv* env, OCISvcCtx* ctx, QObject* parent) - : QSqlDriver(parent) + : QSqlDriver(*new QOCIDriverPrivate, parent) { - d = new QOCIDriverPrivate(); + Q_D(QOCIDriver); d->env = env; d->svc = ctx; @@ -2132,6 +2131,7 @@ QOCIDriver::QOCIDriver(OCIEnv* env, OCISvcCtx* ctx, QObject* parent) QOCIDriver::~QOCIDriver() { + Q_D(QOCIDriver); if (isOpen()) close(); int r = OCIHandleFree(d->err, OCI_HTYPE_ERROR); @@ -2144,6 +2144,7 @@ QOCIDriver::~QOCIDriver() bool QOCIDriver::hasFeature(DriverFeature f) const { + Q_D(const QOCIDriver); switch (f) { case Transactions: case LastInsertId: @@ -2202,6 +2203,7 @@ bool QOCIDriver::open(const QString & db, int port, const QString &opts) { + Q_D(QOCIDriver); int r; if (isOpen()) @@ -2288,6 +2290,7 @@ bool QOCIDriver::open(const QString & db, void QOCIDriver::close() { + Q_D(QOCIDriver); if (!isOpen()) return; @@ -2305,11 +2308,13 @@ void QOCIDriver::close() QSqlResult *QOCIDriver::createResult() const { + Q_D(const QOCIDriver); return new QOCIResult(this, d); } bool QOCIDriver::beginTransaction() { + Q_D(QOCIDriver); if (!isOpen()) { qWarning("QOCIDriver::beginTransaction: Database not open"); return false; @@ -2330,6 +2335,7 @@ bool QOCIDriver::beginTransaction() bool QOCIDriver::commitTransaction() { + Q_D(QOCIDriver); if (!isOpen()) { qWarning("QOCIDriver::commitTransaction: Database not open"); return false; @@ -2349,6 +2355,7 @@ bool QOCIDriver::commitTransaction() bool QOCIDriver::rollbackTransaction() { + Q_D(QOCIDriver); if (!isOpen()) { qWarning("QOCIDriver::rollbackTransaction: Database not open"); return false; @@ -2368,6 +2375,7 @@ bool QOCIDriver::rollbackTransaction() QStringList QOCIDriver::tables(QSql::TableType type) const { + Q_D(const QOCIDriver); QStringList tl; QStringList sysUsers = QStringList() << QLatin1String("MDSYS") << QLatin1String("LBACSYS") @@ -2473,6 +2481,7 @@ void qSplitTableAndOwner(const QString & tname, QString * tbl, QSqlRecord QOCIDriver::record(const QString& tablename) const { + Q_D(const QOCIDriver); QSqlRecord fil; if (!isOpen()) return fil; @@ -2546,6 +2555,7 @@ QSqlRecord QOCIDriver::record(const QString& tablename) const QSqlIndex QOCIDriver::primaryIndex(const QString& tablename) const { + Q_D(const QOCIDriver); QSqlIndex idx(tablename); if (!isOpen()) return idx; @@ -2666,6 +2676,7 @@ QString QOCIDriver::formatValue(const QSqlField &field, bool trimStrings) const QVariant QOCIDriver::handle() const { + Q_D(const QOCIDriver); return QVariant::fromValue(d->env); } diff --git a/src/sql/drivers/oci/qsql_oci_p.h b/src/sql/drivers/oci/qsql_oci_p.h index 0b874e6be3..c55a4209fa 100644 --- a/src/sql/drivers/oci/qsql_oci_p.h +++ b/src/sql/drivers/oci/qsql_oci_p.h @@ -73,6 +73,7 @@ class QOCIDriverPrivate; class Q_EXPORT_SQLDRIVER_OCI QOCIDriver : public QSqlDriver { + Q_DECLARE_PRIVATE(QOCIDriver) Q_OBJECT friend struct QOCIResultPrivate; friend class QOCIPrivate; @@ -101,8 +102,6 @@ protected: bool beginTransaction(); bool commitTransaction(); bool rollbackTransaction(); -private: - QOCIDriverPrivate *d; }; QT_END_NAMESPACE -- cgit v1.2.3