From 976225a9dd4e88c3db2fc1f542d4e5f98d54dff3 Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Mon, 13 Dec 2010 16:27:14 +0100 Subject: 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 --- src/server/shared/Database/DatabaseWorkerPool.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/server/shared') 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); -- cgit v1.2.3