forked from qt-creator/qt-creator
Sqlite: Add Read and ReadWrite mode to database
We want open databases in read only mode too. Change-Id: I3b20602d4bd7841c9fca3260edce082d21022052 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -101,13 +101,13 @@ void SqliteDatabaseBackend::checkpointFullWalLog()
|
||||
checkIfLogCouldBeCheckpointed(resultCode);
|
||||
}
|
||||
|
||||
void SqliteDatabaseBackend::open(Utils::SmallStringView databaseFilePath)
|
||||
void SqliteDatabaseBackend::open(Utils::SmallStringView databaseFilePath, OpenMode mode)
|
||||
{
|
||||
checkCanOpenDatabase(databaseFilePath);
|
||||
|
||||
int resultCode = sqlite3_open_v2(databaseFilePath.data(),
|
||||
&m_databaseHandle,
|
||||
SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,
|
||||
openMode(mode),
|
||||
NULL);
|
||||
|
||||
checkDatabaseCouldBeOpened(resultCode);
|
||||
@@ -375,6 +375,18 @@ TextEncoding SqliteDatabaseBackend::pragmaToTextEncoding(Utils::SmallStringView
|
||||
return static_cast<TextEncoding>(index);
|
||||
}
|
||||
|
||||
int SqliteDatabaseBackend::openMode(OpenMode mode)
|
||||
{
|
||||
int sqliteMode = SQLITE_OPEN_CREATE;
|
||||
|
||||
switch (mode) {
|
||||
case OpenMode::ReadOnly: sqliteMode |= SQLITE_OPEN_READONLY; break;
|
||||
case OpenMode::ReadWrite: sqliteMode |= SQLITE_OPEN_READWRITE; break;
|
||||
}
|
||||
|
||||
return sqliteMode;
|
||||
}
|
||||
|
||||
void SqliteDatabaseBackend::throwExceptionStatic(const char *whatHasHappens)
|
||||
{
|
||||
throw SqliteException(whatHasHappens);
|
||||
|
||||
Reference in New Issue
Block a user