diff options
author | Mark Brand <mabrand@mabrand.nl> | 2015-11-25 22:26:57 +0100 |
---|---|---|
committer | Mark Brand <mabrand@mabrand.nl> | 2015-12-09 07:32:32 +0000 |
commit | 371c2e478604af3e992d26f10ed755a86e166380 (patch) | |
tree | 5a2baed852def13764002f2cc6961bef151d98e8 /src/sql/drivers/sqlite2/qsql_sqlite2.cpp | |
parent | a5cd0818794049ac5568d46c6301b188eb3d6623 (diff) |
qsql_sqlite and qsql_sqlite2: don't hold driver data in result
Change-Id: Ia4f6adc6daaea97ac06246e9d01c6561de1227ea
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Diffstat (limited to 'src/sql/drivers/sqlite2/qsql_sqlite2.cpp')
-rw-r--r-- | src/sql/drivers/sqlite2/qsql_sqlite2.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp index a170cb90be..cd449e28e8 100644 --- a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp +++ b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp @@ -127,8 +127,6 @@ public: void init(const char **cnames, int numCols); void finalize(); - sqlite *access; - // and we have too keep our own struct for the data (sqlite works via // callback. const char *currentTail; @@ -136,7 +134,6 @@ public: bool skippedStatus; // the status of the fetchNext() that's skipped bool skipRow; // skip the next fetchNext()? - bool utf8; QSqlRecord rInf; QVector<QVariant> firstRow; }; @@ -148,8 +145,7 @@ QSQLite2ResultPrivate::QSQLite2ResultPrivate(QSQLite2Result *q, const QSQLite2Dr currentTail(0), currentMachine(0), skippedStatus(false), - skipRow(false), - utf8(false) + skipRow(false) { } @@ -261,7 +257,7 @@ bool QSQLite2ResultPrivate::fetchNext(QSqlCachedResult::ValueCache &values, int if (idx < 0 && !initialFetch) return true; for (i = 0; i < colNum; ++i) - values[i + idx] = utf8 ? QString::fromUtf8(fvals[i]) : QString::fromLatin1(fvals[i]); + values[i + idx] = drv_d_func()->utf8 ? QString::fromUtf8(fvals[i]) : QString::fromLatin1(fvals[i]); return true; case SQLITE_DONE: if (rInf.isEmpty()) @@ -283,9 +279,6 @@ bool QSQLite2ResultPrivate::fetchNext(QSqlCachedResult::ValueCache &values, int QSQLite2Result::QSQLite2Result(const QSQLite2Driver* db) : QSqlCachedResult(*new QSQLite2ResultPrivate(this, db)) { - Q_D(QSQLite2Result); - d->access = d->drv_d_func()->access; - d->utf8 = d->drv_d_func()->utf8; } QSQLite2Result::~QSQLite2Result() @@ -316,8 +309,8 @@ bool QSQLite2Result::reset (const QString& query) // Um, ok. callback based so.... pass private static function for this. setSelect(false); char *err = 0; - int res = sqlite_compile(d->access, - d->utf8 ? query.toUtf8().constData() + int res = sqlite_compile(d->drv_d_func()->access, + d->drv_d_func()->utf8 ? query.toUtf8().constData() : query.toLatin1().constData(), &(d->currentTail), &(d->currentMachine), @@ -359,8 +352,8 @@ int QSQLite2Result::size() int QSQLite2Result::numRowsAffected() { - Q_D(const QSQLite2Result); - return sqlite_changes(d->access); + Q_D(QSQLite2Result); + return sqlite_changes(d->drv_d_func()->access); } QSqlRecord QSQLite2Result::record() const |