Mercurial > hg > orthanc-databases
comparison Framework/MySQL/MySQLDatabase.cpp @ 217:ee5858d438dc
TransactionType given to MySQLTransaction constructor
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 26 Mar 2021 18:02:34 +0100 |
parents | b40b30075c51 |
children | a4918d57435c |
comparison
equal
deleted
inserted
replaced
216:fbb52129158a | 217:ee5858d438dc |
---|---|
205 db.OpenRoot(); | 205 db.OpenRoot(); |
206 | 206 |
207 const std::string& database = parameters.GetDatabase(); | 207 const std::string& database = parameters.GetDatabase(); |
208 | 208 |
209 { | 209 { |
210 MySQLTransaction t(db); | 210 MySQLTransaction t(db, TransactionType_ReadWrite); |
211 | 211 |
212 if (!db.DoesDatabaseExist(t, database)) | 212 if (!db.DoesDatabaseExist(t, database)) |
213 { | 213 { |
214 LOG(ERROR) << "Inexistent database, please create it first: " << database; | 214 LOG(ERROR) << "Inexistent database, please create it first: " << database; |
215 throw Orthanc::OrthancException(Orthanc::ErrorCode_UnknownResource); | 215 throw Orthanc::OrthancException(Orthanc::ErrorCode_UnknownResource); |
337 bool success; | 337 bool success; |
338 | 338 |
339 { | 339 { |
340 MySQLStatement statement(*this, query); | 340 MySQLStatement statement(*this, query); |
341 | 341 |
342 MySQLTransaction t(*this); | 342 MySQLTransaction t(*this, TransactionType_ReadWrite); |
343 std::unique_ptr<IResult> result(t.Execute(statement, args)); | 343 std::unique_ptr<IResult> result(t.Execute(statement, args)); |
344 | 344 |
345 success = (!result->IsDone() && | 345 success = (!result->IsDone() && |
346 result->GetField(0).GetType() == ValueType_Integer64 && | 346 result->GetField(0).GetType() == ValueType_Integer64 && |
347 dynamic_cast<const Integer64Value&>(result->GetField(0)).GetValue() == 1); | 347 dynamic_cast<const Integer64Value&>(result->GetField(0)).GetValue() == 1); |
545 { | 545 { |
546 case TransactionType_Implicit: | 546 case TransactionType_Implicit: |
547 return new MySQLImplicitTransaction; | 547 return new MySQLImplicitTransaction; |
548 | 548 |
549 case TransactionType_ReadOnly: | 549 case TransactionType_ReadOnly: |
550 // TODO => READ-ONLY | |
551 return new MySQLTransaction(*this); | |
552 | |
553 case TransactionType_ReadWrite: | 550 case TransactionType_ReadWrite: |
554 return new MySQLTransaction(*this); | 551 return new MySQLTransaction(*this, type); |
555 | 552 |
556 default: | 553 default: |
557 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); | 554 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); |
558 } | 555 } |
559 } | 556 } |