Mercurial > hg > orthanc-databases
diff Framework/SQLite/SQLiteDatabase.cpp @ 215:b40b30075c51
added TransactionType_Implicit
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 26 Mar 2021 17:32:29 +0100 |
parents | 3236894320d6 |
children | 35598014f140 |
line wrap: on
line diff
--- a/Framework/SQLite/SQLiteDatabase.cpp Thu Mar 25 13:56:26 2021 +0100 +++ b/Framework/SQLite/SQLiteDatabase.cpp Fri Mar 26 17:32:29 2021 +0100 @@ -48,9 +48,6 @@ { class SQLiteImplicitTransaction : public ImplicitTransaction { - private: - SQLiteDatabase& db_; - protected: virtual IResult* ExecuteInternal(IPrecompiledStatement& statement, const Dictionary& parameters) ORTHANC_OVERRIDE @@ -63,24 +60,22 @@ { dynamic_cast<SQLiteStatement&>(statement).ExecuteWithoutResult(*this, parameters); } - - public: - explicit SQLiteImplicitTransaction(SQLiteDatabase& db) : - db_(db) - { - } }; } - ITransaction* SQLiteDatabase::CreateTransaction(bool isImplicit) + ITransaction* SQLiteDatabase::CreateTransaction(TransactionType type) { - if (isImplicit) + switch (type) { - return new SQLiteImplicitTransaction(*this); - } - else - { - return new SQLiteTransaction(*this); + case TransactionType_Implicit: + return new SQLiteImplicitTransaction; + + case TransactionType_ReadOnly: + case TransactionType_ReadWrite: + return new SQLiteTransaction(*this); + + default: + throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); } } }