diff options
author | Shauren <none@none> | 2010-09-20 18:20:40 +0200 |
---|---|---|
committer | Shauren <none@none> | 2010-09-20 18:20:40 +0200 |
commit | a5099763691f2d4d80de7db557f22b024b717cbd (patch) | |
tree | 94bb4e7851cfb978e6dcbc96b9e94899877b71c1 /src/server/game/Globals/ObjectMgr.cpp | |
parent | cd40ab6776fcc2cf90ec4220d23962b58f0bb18e (diff) |
Core/DBLayer: Converted player login queries into prepared statements
Core/DBLayer: Added missing implementation for SQLQueryHolder::SetPreparedQuery
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 989f7a1a8ed..eef8d4b6a85 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -3540,8 +3540,9 @@ void ObjectMgr::LoadGuilds() // 0 1 2 3 4 QueryResult guildBankTabResult = CharacterDatabase.Query("SELECT TabId, TabName, TabIcon, TabText, guildid FROM guild_bank_tab ORDER BY TabId"); - // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - QueryResult guildBankItemResult = CharacterDatabase.Query("SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, TabId, SlotId, item_guid, item_entry, guildid FROM guild_bank_item JOIN item_instance ON item_guid = guid"); + + PreparedStatement* guildBankItemStmt = CharacterDatabase.GetPreparedStatement(CHAR_LOAD_GUILD_BANK_ITEMS); + PreparedQueryResult guildBankItemResult = CharacterDatabase.Query(guildBankItemStmt); LoadGuildEvents(GuildVector, guildEventResult); LoadGuildBankEvents(GuildVector, guildBankEventResult); @@ -3660,7 +3661,7 @@ void ObjectMgr::LoadGuildBankEvents(std::vector<Guild*>& GuildVector, QueryResul } } -void ObjectMgr::LoadGuildBanks(std::vector<Guild*>& GuildVector, QueryResult& result, QueryResult& itemResult) +void ObjectMgr::LoadGuildBanks(std::vector<Guild*>& GuildVector, QueryResult& result, PreparedQueryResult& itemResult) { if (result) { @@ -3690,38 +3691,36 @@ void ObjectMgr::LoadGuildBanks(std::vector<Guild*>& GuildVector, QueryResult& re { do { - Field *itemfields = itemResult->Fetch(); - - uint8 TabId = itemfields[11].GetUInt8(); - uint8 SlotId = itemfields[12].GetUInt8(); - uint32 ItemGuid = itemfields[13].GetUInt32(); - uint32 ItemEntry = itemfields[14].GetUInt32(); - uint32 guildid = itemfields[15].GetUInt32(); + uint8 TabId = itemResult->GetUInt8(11); + uint8 SlotId = itemResult->GetUInt8(12); + uint32 ItemGuid = itemResult->GetUInt32(13); + uint32 ItemId = itemResult->GetUInt32(14); + uint32 guildid = itemResult->GetUInt32(15); if (guildid >= GuildVector.size() || GuildVector[guildid] == NULL) return; if (TabId >= GuildVector[guildid]->GetPurchasedTabs()) { - sLog.outError("Guild::LoadGuildBankFromDB: Invalid tab for item (GUID: %u id: #%u) in guild bank, skipped.", ItemGuid,ItemEntry); + sLog.outError("Guild::LoadGuildBankFromDB: Invalid tab for item (GUID: %u id: #%u) in guild bank, skipped.", ItemGuid, ItemId); continue; } if (SlotId >= GUILD_BANK_MAX_SLOTS) { - sLog.outError("Guild::LoadGuildBankFromDB: Invalid slot for item (GUID: %u id: #%u) in guild bank, skipped.", ItemGuid,ItemEntry); + sLog.outError("Guild::LoadGuildBankFromDB: Invalid slot for item (GUID: %u id: #%u) in guild bank, skipped.", ItemGuid, ItemId); continue; } - ItemPrototype const *proto = sObjectMgr.GetItemPrototype(ItemEntry); + ItemPrototype const *proto = sObjectMgr.GetItemPrototype(ItemId); if (!proto) { - sLog.outError("Guild::LoadGuildBankFromDB: Unknown item (GUID: %u id: #%u) in guild bank, skipped.", ItemGuid,ItemEntry); + sLog.outError("Guild::LoadGuildBankFromDB: Unknown item (GUID: %u id: #%u) in guild bank, skipped.", ItemGuid, ItemId); continue; } Item *pItem = NewItemOrBag(proto); - if (!pItem->LoadFromDB(ItemGuid, 0, itemResult, ItemEntry)) + if (!pItem->LoadFromDB(ItemGuid, 0, itemResult, ItemId)) { PreparedStatement *stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_NONEXISTENT_GUILD_BANK_ITEM); stmt->setUInt32(0, guildid); |