aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp14
-rw-r--r--src/server/shared/Database/Implementation/WorldDatabase.cpp9
-rw-r--r--src/server/shared/Database/Implementation/WorldDatabase.h2
-rw-r--r--src/server/shared/Database/MySQLConnection.cpp2
-rw-r--r--src/server/shared/Database/MySQLConnection.h2
5 files changed, 24 insertions, 5 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 961472c60ec..eee64145ada 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -7221,9 +7221,19 @@ void ObjectMgr::SaveCreatureRespawnTime(uint32 loguid, uint32 instance, time_t t
mCreatureRespawnTimes[MAKE_PAIR64(loguid,instance)] = t;
}
- WorldDatabase.PExecute("DELETE FROM creature_respawn WHERE guid = '%u' AND instance = '%u'", loguid, instance);
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CRESPAWNTIME);
+ stmt->setUInt32(0, loguid);
+ stmt->setUInt32(1, instance);
+ WorldDatabase.Execute(stmt);
+
if (t)
- WorldDatabase.PExecute("INSERT INTO creature_respawn VALUES ('%u', '" UI64FMTD "', '%u')", loguid, uint64(t), instance);
+ {
+ stmt = WorldDatabase.GetPreparedStatement(WORLD_ADD_CRESPAWNTIME);
+ stmt->setUInt32(0, loguid);
+ stmt->setUInt64(1, uint64(t));
+ stmt->setUInt32(2, instance);
+ WorldDatabase.Execute(stmt);
+ }
}
void ObjectMgr::DeleteCreatureData(uint32 guid)
diff --git a/src/server/shared/Database/Implementation/WorldDatabase.cpp b/src/server/shared/Database/Implementation/WorldDatabase.cpp
index 26a270f565a..12383490e91 100644
--- a/src/server/shared/Database/Implementation/WorldDatabase.cpp
+++ b/src/server/shared/Database/Implementation/WorldDatabase.cpp
@@ -20,11 +20,18 @@
bool WorldDatabaseConnection::Open(const std::string& infoString)
{
+ if (!MySQLConnection::Open(infoString))
+ return false;
+
+ m_stmts.resize(MAX_WORLDDATABASE_STATEMENTS);
+
/*
##################################
LOAD YOUR PREPARED STATEMENTS HERE
##################################
*/
+ PrepareStatement(WORLD_DEL_CRESPAWNTIME, "DELETE FROM creature_respawn WHERE guid = ? AND instance = ?");
+ PrepareStatement(WORLD_ADD_CRESPAWNTIME, "INSERT INTO creature_respawn VALUES (?, ?, ?)");
- return MySQLConnection::Open(infoString);
+ return true;
}
diff --git a/src/server/shared/Database/Implementation/WorldDatabase.h b/src/server/shared/Database/Implementation/WorldDatabase.h
index eb76791faaa..fb40869cc19 100644
--- a/src/server/shared/Database/Implementation/WorldDatabase.h
+++ b/src/server/shared/Database/Implementation/WorldDatabase.h
@@ -37,6 +37,8 @@ typedef DatabaseWorkerPool<WorldDatabaseConnection> WorldDatabaseWorkerPool;
enum WorldDatabaseStatements
{
+ WORLD_DEL_CRESPAWNTIME,
+ WORLD_ADD_CRESPAWNTIME,
MAX_WORLDDATABASE_STATEMENTS,
};
diff --git a/src/server/shared/Database/MySQLConnection.cpp b/src/server/shared/Database/MySQLConnection.cpp
index 4e5f26c0e8d..b2e52ea7eb7 100644
--- a/src/server/shared/Database/MySQLConnection.cpp
+++ b/src/server/shared/Database/MySQLConnection.cpp
@@ -25,7 +25,7 @@
#include <mysql.h>
#include "MySQLConnection.h"
-#include "MYSQLThreading.h"
+#include "MySQLThreading.h"
#include "QueryResult.h"
#include "SQLOperation.h"
#include "PreparedStatement.h"
diff --git a/src/server/shared/Database/MySQLConnection.h b/src/server/shared/Database/MySQLConnection.h
index c0f792b1191..bbb9824943b 100644
--- a/src/server/shared/Database/MySQLConnection.h
+++ b/src/server/shared/Database/MySQLConnection.h
@@ -50,13 +50,13 @@ class MySQLConnection
MYSQL* GetHandle() { return m_Mysql; }
MySQLPreparedStatement* GetPreparedStatement(uint32 index);
void PrepareStatement(uint32 index, const char* sql);
+ std::vector<MySQLPreparedStatement*> m_stmts; //! PreparedStatements storage
private:
ACE_Activation_Queue* m_queue; //! Queue shared with other asynchroneous connections.
DatabaseWorker* m_worker; //! Core worker task.
MYSQL * m_Mysql; //! MySQL Handle.
ACE_Thread_Mutex m_Mutex;
- std::vector<MySQLPreparedStatement*> m_stmts; //! PreparedStatements storage
};
#endif \ No newline at end of file