Mercurial > hg > orthanc-databases
diff Framework/MySQL/MySQLDatabase.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 | ee5858d438dc |
line wrap: on
line diff
--- a/Framework/MySQL/MySQLDatabase.cpp Thu Mar 25 13:56:26 2021 +0100 +++ b/Framework/MySQL/MySQLDatabase.cpp Fri Mar 26 17:32:29 2021 +0100 @@ -518,9 +518,6 @@ { class MySQLImplicitTransaction : public ImplicitTransaction { - private: - MySQLDatabase& db_; - protected: virtual IResult* ExecuteInternal(IPrecompiledStatement& statement, const Dictionary& parameters) @@ -533,30 +530,31 @@ { dynamic_cast<MySQLStatement&>(statement).ExecuteWithoutResult(*this, parameters); } - - public: - explicit MySQLImplicitTransaction(MySQLDatabase& db) : - db_(db) - { - } }; } - ITransaction* MySQLDatabase::CreateTransaction(bool isImplicit) + ITransaction* MySQLDatabase::CreateTransaction(TransactionType type) { if (mysql_ == NULL) { throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); } - if (isImplicit) + switch (type) { - return new MySQLImplicitTransaction(*this); - } - else - { - return new MySQLTransaction(*this); + case TransactionType_Implicit: + return new MySQLImplicitTransaction; + + case TransactionType_ReadOnly: + // TODO => READ-ONLY + return new MySQLTransaction(*this); + + case TransactionType_ReadWrite: + return new MySQLTransaction(*this); + + default: + throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); } }