aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
authorShauren <none@none>2010-09-20 18:20:40 +0200
committerShauren <none@none>2010-09-20 18:20:40 +0200
commita5099763691f2d4d80de7db557f22b024b717cbd (patch)
tree94bb4e7851cfb978e6dcbc96b9e94899877b71c1 /src/server/game/Globals/ObjectMgr.cpp
parentcd40ab6776fcc2cf90ec4220d23962b58f0bb18e (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.cpp29
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);