diff options
author | Azazel <azazel.kon@gmail.com> | 2011-04-08 11:28:10 +0600 |
---|---|---|
committer | Azazel <azazel.kon@gmail.com> | 2011-04-08 11:28:10 +0600 |
commit | 37a6fe2ae737db97015acd38fad16c7306d68dd2 (patch) | |
tree | 006e8e4c2279b4f1776c721d84a1cccb3d6694fd /src | |
parent | 74b84a603d4592b653f670db544b75ffb7b495fb (diff) |
Core/CharDB Cleanup: alter character_battleground_data table making column names lowerCamel and move all queries to prepared statements.
Diffstat (limited to 'src')
4 files changed, 32 insertions, 10 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 75ceee34f0b..d3b3b720ff1 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -4899,7 +4899,9 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC trans->PAppend("DELETE FROM character_equipmentsets WHERE guid = '%u'",guid); trans->PAppend("DELETE FROM guild_eventlog WHERE PlayerGuid1 = '%u' OR PlayerGuid2 = '%u'",guid, guid); trans->PAppend("DELETE FROM guild_bank_eventlog WHERE PlayerGuid = '%u'",guid); - trans->PAppend("DELETE FROM character_battleground_data WHERE guid = '%u'",guid); + stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_BGDATA); + stmt->setUInt32(0, guid); + trans->Append(stmt); trans->PAppend("DELETE FROM character_glyphs WHERE guid = '%u'",guid); trans->PAppend("DELETE FROM character_queststatus_daily WHERE guid = '%u'",guid); trans->PAppend("DELETE FROM character_talent WHERE guid = '%u'",guid); @@ -16313,8 +16315,8 @@ void Player::_LoadBGData(PreparedQueryResult result) Field* fields = result->Fetch(); // Expecting only one row - // 0 1 2 3 4 5 6 7 8 9 - // SELECT instance_id, team, join_x, join_y, join_z, join_o, join_map, taxi_start, taxi_end, mount_spell FROM character_battleground_data WHERE guid = ? + // 0 1 2 3 4 5 6 7 8 9 + // SELECT instanceId, team, joinX, joinY, joinZ, joinO, joinMapId, taxiStart, taxiEnd, mountSpell FROM character_battleground_data WHERE guid = ? m_bgData.bgInstanceID = fields[0].GetUInt32(); m_bgData.bgTeam = fields[1].GetUInt16(); @@ -24011,13 +24013,25 @@ void Player::_SaveEquipmentSets(SQLTransaction& trans) void Player::_SaveBGData(SQLTransaction& trans) { - trans->PAppend("DELETE FROM character_battleground_data WHERE guid='%u'", GetGUIDLow()); + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_BGDATA); + stmt->setUInt32(0, GetGUIDLow()); + trans->Append(stmt); if (m_bgData.bgInstanceID) { /* guid, bgInstanceID, bgTeam, x, y, z, o, map, taxi[0], taxi[1], mountSpell */ - trans->PAppend("INSERT INTO character_battleground_data VALUES ('%u', '%u', '%u', '%f', '%f', '%f', '%f', '%u', '%u', '%u', '%u')", - GetGUIDLow(), m_bgData.bgInstanceID, m_bgData.bgTeam, m_bgData.joinPos.GetPositionX(), m_bgData.joinPos.GetPositionY(), m_bgData.joinPos.GetPositionZ(), - m_bgData.joinPos.GetOrientation(), m_bgData.joinPos.GetMapId(), m_bgData.taxiPath[0], m_bgData.taxiPath[1], m_bgData.mountSpell); + stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_PLAYER_BGDATA); + stmt->setUInt32(0, GetGUIDLow()); + stmt->setUInt32(1, m_bgData.bgInstanceID); + stmt->setUInt16(2, m_bgData.bgTeam); + stmt->setFloat (3, m_bgData.joinPos.GetPositionX()); + stmt->setFloat (4, m_bgData.joinPos.GetPositionY()); + stmt->setFloat (5, m_bgData.joinPos.GetPositionZ()); + stmt->setFloat (6, m_bgData.joinPos.GetOrientation()); + stmt->setUInt16(7, m_bgData.joinPos.GetMapId()); + stmt->setUInt16(8, m_bgData.taxiPath[0]); + stmt->setUInt16(9, m_bgData.taxiPath[1]); + stmt->setUInt16(10,m_bgData.mountSpell); + trans->Append(stmt); } } diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp index 9c25c9dfe06..55032a9ebe1 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp @@ -66,7 +66,7 @@ void CharacterDatabaseConnection::DoPrepareStatements() PREPARE_STATEMENT(CHAR_LOAD_PLAYER_CRITERIAPROGRESS, "SELECT criteria, counter, date FROM character_achievement_progress WHERE guid = ?", CONNECTION_ASYNC) PREPARE_STATEMENT(CHAR_LOAD_PLAYER_EQUIPMENTSETS, "SELECT setguid, setindex, name, iconname, item0, item1, item2, item3, item4, item5, item6, item7, item8, " "item9, item10, item11, item12, item13, item14, item15, item16, item17, item18 FROM character_equipmentsets WHERE guid = ? ORDER BY setindex", CONNECTION_ASYNC) - PREPARE_STATEMENT(CHAR_LOAD_PLAYER_BGDATA, "SELECT instance_id, team, join_x, join_y, join_z, join_o, join_map, taxi_start, taxi_end, mount_spell FROM character_battleground_data WHERE guid = ?", CONNECTION_ASYNC) + PREPARE_STATEMENT(CHAR_LOAD_PLAYER_BGDATA, "SELECT instanceId, team, joinX, joinY, joinZ, joinO, joinMapId, taxiStart, taxiEnd, mountSpell FROM character_battleground_data WHERE guid = ?", CONNECTION_ASYNC) PREPARE_STATEMENT(CHAR_LOAD_PLAYER_GLYPHS, "SELECT spec, glyph1, glyph2, glyph3, glyph4, glyph5, glyph6 FROM character_glyphs WHERE guid = ?", CONNECTION_ASYNC) PREPARE_STATEMENT(CHAR_LOAD_PLAYER_TALENTS, "SELECT spell, spec FROM character_talent WHERE guid = ?", CONNECTION_ASYNC) PREPARE_STATEMENT(CHAR_LOAD_PLAYER_SKILLS, "SELECT skill, value, max FROM character_skills WHERE guid = ?", CONNECTION_ASYNC) @@ -295,4 +295,9 @@ void CharacterDatabaseConnection::DoPrepareStatements() PREPARE_STATEMENT(CHAR_UPDATE_ARENA_TEAM_MEMBER, "UPDATE arena_team_member SET weekGames = ?, weekWins = ?, seasonGames = ?, seasonWins = ? WHERE arenaTeamId = ? AND guid = ?", CONNECTION_ASYNC); PREPARE_STATEMENT(CHAR_UPDATE_ARENA_TEAM_MEMBER_STATS, "REPLACE INTO character_arena_stats (guid, slot, personalRating, matchMakerRating) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC); PREPARE_STATEMENT(CHAR_LOAD_PLAYER_ARENA_TEAMS, "SELECT arena_team_member.arenaTeamId FROM arena_team_member JOIN arena_team ON arena_team_member.arenaTeamId = arena_team.arenaTeamId WHERE guid = ?", CONNECTION_SYNCH); + + // Character battleground data + PREPARE_STATEMENT(CHAR_ADD_PLAYER_BGDATA, "INSERT INTO character_battleground_data (guid, instanceId, team, joinX, joinY, joinZ, joinO, joinMapId, taxiStart, taxiEnd, mountSpell) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC) + PREPARE_STATEMENT(CHAR_DEL_PLAYER_BGDATA, "DELETE FROM character_battleground_data WHERE guid = ?", CONNECTION_ASYNC) + PREPARE_STATEMENT(CHAR_RESET_PLAYERS_BGDATA, "UPDATE character_battleground_data SET instanceId = 0", CONNECTION_SYNCH) } diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h index d0b90f4167c..da3e209af09 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.h +++ b/src/server/shared/Database/Implementation/CharacterDatabase.h @@ -248,10 +248,13 @@ enum CharacterDatabaseStatements CHAR_UPDATE_ARENA_TEAM_MEMBER_STATS, CHAR_LOAD_PLAYER_ARENA_TEAMS, - CHAR_LOAD_PETITION, CHAR_LOAD_PETITION_SIGNATURE, + CHAR_ADD_PLAYER_BGDATA, + CHAR_DEL_PLAYER_BGDATA, + CHAR_RESET_PLAYERS_BGDATA, + MAX_CHARACTERDATABASE_STATEMENTS, }; diff --git a/src/server/worldserver/Master.cpp b/src/server/worldserver/Master.cpp index 1e3f9cd5e99..36ac9cabed7 100755 --- a/src/server/worldserver/Master.cpp +++ b/src/server/worldserver/Master.cpp @@ -486,5 +486,5 @@ void Master::clearOnlineAccounts() CharacterDatabase.DirectExecute("UPDATE characters SET online = 0 WHERE online <> 0"); // Battleground instance ids reset at server restart - CharacterDatabase.DirectExecute("UPDATE character_battleground_data SET instance_id = 0"); + CharacterDatabase.DirectExecute(CharacterDatabase.GetPreparedStatement(CHAR_RESET_PLAYERS_BGDATA)); } |