bool ArenaTeam::LoadArenaTeamFromDB(uint32 ArenaTeamId) { LoadStatsFromDB(ArenaTeamId); LoadMembersFromDB(ArenaTeamId); // 0 1 2 3 4 5 6 7 8 QueryResult *result = CharacterDatabase.PQuery("SELECT arenateamid,name,captainguid,type,BackgroundColor,EmblemStyle,EmblemColor,BorderStyle,BorderColor FROM arena_team WHERE arenateamid = '%u'", ArenaTeamId); if(!result) return false; Field *fields = result->Fetch(); Id = fields[0].GetUInt32(); Name = fields[1].GetCppString(); CaptainGuid = MAKE_NEW_GUID(fields[2].GetUInt32(), 0, HIGHGUID_PLAYER); Type = fields[3].GetUInt32(); BackgroundColor = fields[4].GetUInt32(); EmblemStyle = fields[5].GetUInt32(); EmblemColor = fields[6].GetUInt32(); BorderStyle = fields[7].GetUInt32(); BorderColor = fields[8].GetUInt32(); delete result; return true; }
bool ArenaTeam::LoadArenaTeamFromDB(uint32 ArenaTeamId) { QueryResult *result = CharacterDatabase.PQuery("SELECT arenateamid,name,captainguid,type,BackgroundColor,EmblemStyle,EmblemColor,BorderStyle,BorderColor FROM arena_team WHERE arenateamid = '%u'", ArenaTeamId); if(!result) return false; Field *fields = result->Fetch(); Id = fields[0].GetUInt32(); Name = fields[1].GetCppString(); CaptainGuid = MAKE_NEW_GUID(fields[2].GetUInt32(), 0, HIGHGUID_PLAYER); Type = fields[3].GetUInt32(); BackgroundColor = fields[4].GetUInt32(); EmblemStyle = fields[5].GetUInt32(); EmblemColor = fields[6].GetUInt32(); BorderStyle = fields[7].GetUInt32(); BorderColor = fields[8].GetUInt32(); delete result; // only load here, so additional checks can be made LoadStatsFromDB(ArenaTeamId); LoadMembersFromDB(ArenaTeamId); if(Empty()) { // arena team is empty, delete from db CharacterDatabase.BeginTransaction(); CharacterDatabase.PExecute("DELETE FROM arena_team WHERE arenateamid = '%u'", ArenaTeamId); CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u'", ArenaTeamId); CharacterDatabase.PExecute("DELETE FROM arena_team_stats WHERE arenateamid = '%u'", ArenaTeamId); CharacterDatabase.CommitTransaction(); return false; } return true; }