diff options
| author | Machiavelli <none@none> | 2010-12-13 16:27:14 +0100 |
|---|---|---|
| committer | Machiavelli <none@none> | 2010-12-13 16:27:14 +0100 |
| commit | 976225a9dd4e88c3db2fc1f542d4e5f98d54dff3 (patch) | |
| tree | 7d3472ad56b37a63e4c64c104cf67a61d83184c0 /src/server/shared | |
| parent | 426b28e34465360fb9c1950867ef13175f49fc8c (diff) | |
Core/DBLayer: Implement global ExecuteOrAppend methods to DatabaseWorkerPool for executing queries in a diverse context (transaction or non transaction) - instead of local to Guild.cpp
--HG--
branch : trunk
Diffstat (limited to 'src/server/shared')
| -rwxr-xr-x | src/server/shared/Database/DatabaseWorkerPool.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/server/shared/Database/DatabaseWorkerPool.h b/src/server/shared/Database/DatabaseWorkerPool.h index b95b818fb36..c9bfb28c400 100755 --- a/src/server/shared/Database/DatabaseWorkerPool.h +++ b/src/server/shared/Database/DatabaseWorkerPool.h @@ -270,6 +270,26 @@ class DatabaseWorkerPool Enqueue(new TransactionTask(transaction)); } + //! Method used to execute prepared statements in a diverse context. + //! Will be wrapped in a transaction if valid object is present, otherwise executed standalone. + void ExecuteOrAppend(SQLTransaction& trans, PreparedStatement* stmt) + { + if (trans.null()) + Execute(stmt); + else + trans->Append(stmt); + } + + //! Method used to execute ad-hoc statements in a diverse context. + //! Will be wrapped in a transaction if valid object is present, otherwise executed standalone. + void ExecuteOrAppend(SQLTransaction& trans, const char* sql) + { + if (trans.null()) + Execute(stmt); + else + trans->Append(sql); + } + PreparedStatement* GetPreparedStatement(uint32 index) { return new PreparedStatement(index); |
