summaryrefslogtreecommitdiffstats
path: root/src/sql/kernel/qsqlresult_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sql/kernel/qsqlresult_p.h')
-rw-r--r--src/sql/kernel/qsqlresult_p.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/sql/kernel/qsqlresult_p.h b/src/sql/kernel/qsqlresult_p.h
index 4fee77eecd..b158618b78 100644
--- a/src/sql/kernel/qsqlresult_p.h
+++ b/src/sql/kernel/qsqlresult_p.h
@@ -48,9 +48,15 @@
#include <QtCore/qpointer.h>
#include "qsqlerror.h"
#include "qsqlresult.h"
+#include "qsqldriver.h"
QT_BEGIN_NAMESPACE
+// convenience method Q*ResultPrivate::drv_d_func() returns pointer to private driver. Compare to Q_DECLARE_PRIVATE in qglobal.h.
+#define Q_DECLARE_SQLDRIVER_PRIVATE(Class) \
+ inline const Class##Private* drv_d_func() const { return !sqldriver ? nullptr : reinterpret_cast<const Class *>(static_cast<const QSqlDriver*>(sqldriver))->d_func(); } \
+ inline Class##Private* drv_d_func() { return !sqldriver ? nullptr : reinterpret_cast<Class *>(static_cast<QSqlDriver*>(sqldriver))->d_func(); }
+
struct QHolder {
QHolder(const QString &hldr = QString(), int index = -1): holderName(hldr), holderPos(index) { }
bool operator==(const QHolder &h) const { return h.holderPos == holderPos && h.holderName == holderName; }
@@ -59,14 +65,14 @@ struct QHolder {
int holderPos;
};
-class QSqlDriver;
-
class Q_SQL_EXPORT QSqlResultPrivate
{
+ Q_DECLARE_PUBLIC(QSqlResult)
public:
- QSqlResultPrivate()
- : q_ptr(0),
+ QSqlResultPrivate(QSqlResult *q, const QSqlDriver *drv)
+ : q_ptr(q),
+ sqldriver(const_cast<QSqlDriver*>(drv)),
idx(QSql::BeforeFirstRow),
active(false),
isSel(false),
@@ -107,7 +113,7 @@ public:
QString holderAt(int index) const;
QSqlResult *q_ptr;
- QPointer<const QSqlDriver> sqldriver;
+ QPointer<QSqlDriver> sqldriver;
int idx;
QString sql;
bool active;