aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Database
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared/Database')
-rwxr-xr-xsrc/server/shared/Database/DatabaseWorkerPool.h20
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);