aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Database/PreparedStatements.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared/Database/PreparedStatements.h')
-rw-r--r--src/server/shared/Database/PreparedStatements.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/server/shared/Database/PreparedStatements.h b/src/server/shared/Database/PreparedStatements.h
new file mode 100644
index 00000000000..c19119dcb3d
--- /dev/null
+++ b/src/server/shared/Database/PreparedStatements.h
@@ -0,0 +1,30 @@
+#ifndef sPreparedStatement
+
+#include "ace/Singleton.h"
+#include "Database/DatabaseEnv.h"
+
+class PreparedStatementHolder
+{
+ public:
+ ///- Load prepare statements on database $db and increase $count for every statement
+ void LoadCharacters(Database *db, uint32 &count);
+ void LoadAuthserver(Database *db, uint32 &count);
+ void LoadWorldserver(Database *db, uint32 &count);
+
+ ///- Executes prepared statement that doesn't require feedback with name $name on database $db
+ void Execute(Database *db, const char* name);
+ ///- Executes prepared statement that doesn't require feedback with name $name and args $args
+ ///- on database $db
+ void PExecute(Database *db, const char* name, const char* args);
+
+ ///- Executes a prepared statement without args on db $db with name $name and puts the result set in a pointer.
+ QueryResult_AutoPtr Query(Database* db, const char* name);
+ ///- Executes a prepared statement with args $args on db $db with name $name and put the result set in a pointer.
+ QueryResult_AutoPtr PQuery(Database* db, const char* name, const char* args);
+
+ private:
+ void _prepareStatement(const char* name, const char* sql, Database *db, uint32 &count);
+
+};
+#define sPreparedStatement (*ACE_Singleton<PreparedStatementHolder, ACE_Null_Mutex>::instance())
+#endif \ No newline at end of file