summaryrefslogtreecommitdiffstats
path: root/src/sql/drivers/sqlite2/qsql_sqlite2.cpp
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@nokia.com>2010-01-25 15:04:11 (GMT)
committerPaul Olav Tvete <paul.tvete@nokia.com>2010-01-25 15:04:11 (GMT)
commit0411ecc38e6c48263de3e5fef2bd8ba3adf61d97 (patch)
treef555609fccea16128797b7951403ba9f459e9b62 /src/sql/drivers/sqlite2/qsql_sqlite2.cpp
parent5bda4e27bbe3fde98bd5c628fada76dfccadad0e (diff)
parentede20ecdb0ddef7ef239900eb3bfa92ca859e010 (diff)
downloadQt-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.cpp18
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);