summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@digia.com>2013-04-09 07:31:53 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-09 10:21:26 +0200
commit97c6fd22d2dcaf65fc41c2db22f83b5270968062 (patch)
treec9af8dc358af74bcba6895060cf521a085e95f03
parentf73a7ca46cb15d77608a4995921b4d501c21bdee (diff)
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 <mabrand@mabrand.nl>
-rw-r--r--src/sql/drivers/db2/qsql_db2.cpp17
-rw-r--r--src/sql/drivers/db2/qsql_db2_p.h2
-rw-r--r--src/sql/drivers/oci/qsql_oci.cpp21
-rw-r--r--src/sql/drivers/oci/qsql_oci_p.h3
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>("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