summaryrefslogtreecommitdiffstats
path: root/src/sql/drivers/sqlite/qsql_sqlite.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2013-12-09 10:13:48 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-12-09 10:13:48 +0100
commit25b390256bf2a699231a165e49f4100262ed29ac (patch)
tree4c3c3cc8dbbe1a523edb26aefd29c22da8732e1f /src/sql/drivers/sqlite/qsql_sqlite.cpp
parentbcf346a76659f896a25f31aa44f64ba5f28ba8e1 (diff)
parentf6dbdd9c16166f345fd5743886229192c97c2c4f (diff)
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'src/sql/drivers/sqlite/qsql_sqlite.cpp')
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.cpp28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp
index 3f93f34ee4..36a4b7d0c4 100644
--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp
+++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp
@@ -597,24 +597,32 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c
if (isOpen())
close();
+
+ int timeOut = 5000;
bool sharedCache = false;
- int openMode = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, timeOut=5000;
- QStringList opts=QString(conOpts).remove(QLatin1Char(' ')).split(QLatin1Char(';'));
- foreach(const QString &option, opts) {
+ bool openReadOnlyOption = false;
+ bool openUriOption = false;
+
+ const QStringList opts = QString(conOpts).remove(QLatin1Char(' ')).split(QLatin1Char(';'));
+ foreach (const QString &option, opts) {
if (option.startsWith(QLatin1String("QSQLITE_BUSY_TIMEOUT="))) {
bool ok;
- int nt = option.mid(21).toInt(&ok);
+ const int nt = option.mid(21).toInt(&ok);
if (ok)
timeOut = nt;
- }
- if (option == QLatin1String("QSQLITE_OPEN_READONLY"))
- openMode = SQLITE_OPEN_READONLY;
- if (option == QLatin1String("QSQLITE_OPEN_URI"))
- openMode |= SQLITE_OPEN_URI;
- if (option == QLatin1String("QSQLITE_ENABLE_SHARED_CACHE"))
+ } else if (option == QLatin1String("QSQLITE_OPEN_READONLY")) {
+ openReadOnlyOption = true;
+ } else if (option == QLatin1String("QSQLITE_OPEN_URI")) {
+ openUriOption = true;
+ } else if (option == QLatin1String("QSQLITE_ENABLE_SHARED_CACHE")) {
sharedCache = true;
+ }
}
+ int openMode = (openReadOnlyOption ? SQLITE_OPEN_READONLY : (SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE));
+ if (openUriOption)
+ openMode |= SQLITE_OPEN_URI;
+
sqlite3_enable_shared_cache(sharedCache);
if (sqlite3_open_v2(db.toUtf8().constData(), &d->access, openMode, NULL) == SQLITE_OK) {