diff options
author | Paul Olav Tvete <paul.tvete@nokia.com> | 2010-01-25 15:04:11 (GMT) |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@nokia.com> | 2010-01-25 15:04:11 (GMT) |
commit | 0411ecc38e6c48263de3e5fef2bd8ba3adf61d97 (patch) | |
tree | f555609fccea16128797b7951403ba9f459e9b62 /src/sql/drivers/sqlite2/qsql_sqlite2.cpp | |
parent | 5bda4e27bbe3fde98bd5c628fada76dfccadad0e (diff) | |
parent | ede20ecdb0ddef7ef239900eb3bfa92ca859e010 (diff) | |
download | Qt-0411ecc38e6c48263de3e5fef2bd8ba3adf61d97.zip Qt-0411ecc38e6c48263de3e5fef2bd8ba3adf61d97.tar.gz Qt-0411ecc38e6c48263de3e5fef2bd8ba3adf61d97.tar.bz2 |
Merge branch 'master' into staging-1-master
Conflicts:
doc/src/getting-started/installation.qdoc
Diffstat (limited to 'src/sql/drivers/sqlite2/qsql_sqlite2.cpp')
-rw-r--r-- | src/sql/drivers/sqlite2/qsql_sqlite2.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp index 1c1a411..ea476e5 100644 --- a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp +++ b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -110,10 +110,11 @@ public: const char *currentTail; sqlite_vm *currentMachine; - uint skippedStatus: 1; // the status of the fetchNext() that's skipped - uint skipRow: 1; // skip the next fetchNext()? - uint utf8: 1; + bool skippedStatus; // the status of the fetchNext() that's skipped + bool skipRow; // skip the next fetchNext()? + bool utf8; QSqlRecord rInf; + QVector<QVariant> firstRow; }; static const uint initial_cache_size = 128; @@ -192,6 +193,8 @@ bool QSQLite2ResultPrivate::fetchNext(QSqlCachedResult::ValueCache &values, int // already fetched Q_ASSERT(!initialFetch); skipRow = false; + for(int i=0;i<firstRow.count(); i++) + values[i] = firstRow[i]; return skippedStatus; } skipRow = initialFetch; @@ -209,6 +212,11 @@ bool QSQLite2ResultPrivate::fetchNext(QSqlCachedResult::ValueCache &values, int #endif } + if(initialFetch) { + firstRow.clear(); + firstRow.resize(colNum); + } + switch(res) { case SQLITE_ROW: // check to see if should fill out columns @@ -299,7 +307,7 @@ bool QSQLite2Result::reset (const QString& query) } // we have to fetch one row to find out about // the structure of the result set - d->skippedStatus = d->fetchNext(cache(), 0, true); + d->skippedStatus = d->fetchNext(d->firstRow, 0, true); if (lastError().isValid()) { setSelect(false); setActive(false); |