Core/DBLayer: Convert PAppend() queries to prepared statements No.2
This commit is contained in:
@@ -266,10 +266,20 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petentry, uint32 petnumber, bool c
|
|||||||
if (fields[7].GetUInt8())
|
if (fields[7].GetUInt8())
|
||||||
{
|
{
|
||||||
SQLTransaction trans = CharacterDatabase.BeginTransaction();
|
SQLTransaction trans = CharacterDatabase.BeginTransaction();
|
||||||
trans->PAppend("UPDATE character_pet SET slot = '%u' WHERE owner = '%u' AND slot = '%u' AND id <> '%u'",
|
|
||||||
PET_SAVE_NOT_IN_SLOT, ownerid, PET_SAVE_AS_CURRENT, m_charmInfo->GetPetNumber());
|
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_PET_SLOT_BY_SLOT_EXCLUDE_ID);
|
||||||
trans->PAppend("UPDATE character_pet SET slot = '%u' WHERE owner = '%u' AND id = '%u'",
|
stmt->setUInt8(0, uint8(PET_SAVE_NOT_IN_SLOT));
|
||||||
PET_SAVE_AS_CURRENT, ownerid, m_charmInfo->GetPetNumber());
|
stmt->setUInt32(1, ownerid);
|
||||||
|
stmt->setUInt8(2, uint8(PET_SAVE_AS_CURRENT));
|
||||||
|
stmt->setUInt32(3, m_charmInfo->GetPetNumber());
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_SLOT_BY_ID);
|
||||||
|
stmt->setUInt8(0, uint8(PET_SAVE_AS_CURRENT));
|
||||||
|
stmt->setUInt32(1, ownerid);
|
||||||
|
stmt->setUInt32(2, m_charmInfo->GetPetNumber());
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
CharacterDatabase.CommitTransaction(trans);
|
CharacterDatabase.CommitTransaction(trans);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -400,17 +410,30 @@ void Pet::SavePetToDB(PetSaveMode mode)
|
|||||||
CharacterDatabase.EscapeString(name);
|
CharacterDatabase.EscapeString(name);
|
||||||
trans = CharacterDatabase.BeginTransaction();
|
trans = CharacterDatabase.BeginTransaction();
|
||||||
// remove current data
|
// remove current data
|
||||||
trans->PAppend("DELETE FROM character_pet WHERE owner = '%u' AND id = '%u'", ownerLowGUID, m_charmInfo->GetPetNumber());
|
|
||||||
|
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_ID);
|
||||||
|
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
// prevent duplicate using slot (except PET_SAVE_NOT_IN_SLOT)
|
// prevent duplicate using slot (except PET_SAVE_NOT_IN_SLOT)
|
||||||
if (mode <= PET_SAVE_LAST_STABLE_SLOT)
|
if (mode <= PET_SAVE_LAST_STABLE_SLOT)
|
||||||
trans->PAppend("UPDATE character_pet SET slot = '%u' WHERE owner = '%u' AND slot = '%u'",
|
{
|
||||||
PET_SAVE_NOT_IN_SLOT, ownerLowGUID, uint32(mode));
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_PET_SLOT_BY_SLOT);
|
||||||
|
stmt->setUInt32(0, ownerLowGUID);
|
||||||
|
stmt->setUInt8(1, uint8(mode));
|
||||||
|
trans->Append(stmt);
|
||||||
|
}
|
||||||
|
|
||||||
// prevent existence another hunter pet in PET_SAVE_AS_CURRENT and PET_SAVE_NOT_IN_SLOT
|
// prevent existence another hunter pet in PET_SAVE_AS_CURRENT and PET_SAVE_NOT_IN_SLOT
|
||||||
if (getPetType() == HUNTER_PET && (mode == PET_SAVE_AS_CURRENT || mode > PET_SAVE_LAST_STABLE_SLOT))
|
if (getPetType() == HUNTER_PET && (mode == PET_SAVE_AS_CURRENT || mode > PET_SAVE_LAST_STABLE_SLOT))
|
||||||
trans->PAppend("DELETE FROM character_pet WHERE owner = '%u' AND (slot = '%u' OR slot > '%u')",
|
{
|
||||||
ownerLowGUID, PET_SAVE_AS_CURRENT, PET_SAVE_LAST_STABLE_SLOT);
|
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_SLOT);
|
||||||
|
stmt->setUInt32(0, ownerLowGUID);
|
||||||
|
stmt->setUInt8(1, uint8(PET_SAVE_AS_CURRENT));
|
||||||
|
stmt->setUInt8(2, uint8(PET_SAVE_LAST_STABLE_SLOT));
|
||||||
|
trans->Append(stmt);
|
||||||
|
}
|
||||||
|
|
||||||
// save pet
|
// save pet
|
||||||
std::ostringstream ss;
|
std::ostringstream ss;
|
||||||
ss << "INSERT INTO character_pet (id, entry, owner, modelid, level, exp, Reactstate, slot, name, renamed, curhealth, curmana, curhappiness, abdata, savetime, CreatedBySpell, PetType) "
|
ss << "INSERT INTO character_pet (id, entry, owner, modelid, level, exp, Reactstate, slot, name, renamed, curhealth, curmana, curhappiness, abdata, savetime, CreatedBySpell, PetType) "
|
||||||
@@ -432,7 +455,7 @@ void Pet::SavePetToDB(PetSaveMode mode)
|
|||||||
for (uint32 i = ACTION_BAR_INDEX_START; i < ACTION_BAR_INDEX_END; ++i)
|
for (uint32 i = ACTION_BAR_INDEX_START; i < ACTION_BAR_INDEX_END; ++i)
|
||||||
{
|
{
|
||||||
ss << uint32(m_charmInfo->GetActionBarEntry(i)->GetType()) << ' '
|
ss << uint32(m_charmInfo->GetActionBarEntry(i)->GetType()) << ' '
|
||||||
<< uint32(m_charmInfo->GetActionBarEntry(i)->GetAction()) << ' ';
|
<< uint32(m_charmInfo->GetActionBarEntry(i)->GetAction()) << ' ';
|
||||||
};
|
};
|
||||||
|
|
||||||
ss << "', "
|
ss << "', "
|
||||||
@@ -454,11 +477,27 @@ void Pet::SavePetToDB(PetSaveMode mode)
|
|||||||
void Pet::DeleteFromDB(uint32 guidlow)
|
void Pet::DeleteFromDB(uint32 guidlow)
|
||||||
{
|
{
|
||||||
SQLTransaction trans = CharacterDatabase.BeginTransaction();
|
SQLTransaction trans = CharacterDatabase.BeginTransaction();
|
||||||
trans->PAppend("DELETE FROM character_pet WHERE id = '%u'", guidlow);
|
|
||||||
trans->PAppend("DELETE FROM character_pet_declinedname WHERE id = '%u'", guidlow);
|
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_ID);
|
||||||
trans->PAppend("DELETE FROM pet_aura WHERE guid = '%u'", guidlow);
|
stmt->setUInt32(0, guidlow);
|
||||||
trans->PAppend("DELETE FROM pet_spell WHERE guid = '%u'", guidlow);
|
trans->Append(stmt);
|
||||||
trans->PAppend("DELETE FROM pet_spell_cooldown WHERE guid = '%u'", guidlow);
|
|
||||||
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_DECLINEDNAME);
|
||||||
|
stmt->setUInt32(0, guidlow);
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_AURAS);
|
||||||
|
stmt->setUInt32(0, guidlow);
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELLS);
|
||||||
|
stmt->setUInt32(0, guidlow);
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_COOLDOWNS);
|
||||||
|
stmt->setUInt32(0, guidlow);
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
CharacterDatabase.CommitTransaction(trans);
|
CharacterDatabase.CommitTransaction(trans);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1097,7 +1136,9 @@ void Pet::_LoadSpellCooldowns()
|
|||||||
|
|
||||||
void Pet::_SaveSpellCooldowns(SQLTransaction& trans)
|
void Pet::_SaveSpellCooldowns(SQLTransaction& trans)
|
||||||
{
|
{
|
||||||
trans->PAppend("DELETE FROM pet_spell_cooldown WHERE guid = '%u'", m_charmInfo->GetPetNumber());
|
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_COOLDOWNS);
|
||||||
|
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
time_t curTime = time(NULL);
|
time_t curTime = time(NULL);
|
||||||
|
|
||||||
@@ -1108,7 +1149,12 @@ void Pet::_SaveSpellCooldowns(SQLTransaction& trans)
|
|||||||
m_CreatureSpellCooldowns.erase(itr++);
|
m_CreatureSpellCooldowns.erase(itr++);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
trans->PAppend("INSERT INTO pet_spell_cooldown (guid, spell, time) VALUES ('%u', '%u', '%u')", m_charmInfo->GetPetNumber(), itr->first, uint32(itr->second));
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL_COOLDOWN);
|
||||||
|
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
|
||||||
|
stmt->setUInt32(1, itr->first);
|
||||||
|
stmt->setUInt32(2, uint32(itr->second));
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
++itr;
|
++itr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1142,18 +1188,37 @@ void Pet::_SaveSpells(SQLTransaction& trans)
|
|||||||
if (itr->second.type == PETSPELL_FAMILY)
|
if (itr->second.type == PETSPELL_FAMILY)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
PreparedStatement* stmt;
|
||||||
|
|
||||||
switch (itr->second.state)
|
switch (itr->second.state)
|
||||||
{
|
{
|
||||||
case PETSPELL_REMOVED:
|
case PETSPELL_REMOVED:
|
||||||
trans->PAppend("DELETE FROM pet_spell WHERE guid = '%u' and spell = '%u'", m_charmInfo->GetPetNumber(), itr->first);
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_BY_SPELL);
|
||||||
|
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
|
||||||
|
stmt->setUInt32(1, itr->first);
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
m_spells.erase(itr);
|
m_spells.erase(itr);
|
||||||
continue;
|
continue;
|
||||||
case PETSPELL_CHANGED:
|
case PETSPELL_CHANGED:
|
||||||
trans->PAppend("DELETE FROM pet_spell WHERE guid = '%u' and spell = '%u'", m_charmInfo->GetPetNumber(), itr->first);
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_BY_SPELL);
|
||||||
trans->PAppend("INSERT INTO pet_spell (guid, spell, active) VALUES ('%u', '%u', '%u')", m_charmInfo->GetPetNumber(), itr->first, itr->second.active);
|
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
|
||||||
|
stmt->setUInt32(1, itr->first);
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL);
|
||||||
|
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
|
||||||
|
stmt->setUInt32(1, itr->first);
|
||||||
|
stmt->setUInt8(2, itr->second.active);
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case PETSPELL_NEW:
|
case PETSPELL_NEW:
|
||||||
trans->PAppend("INSERT INTO pet_spell (guid, spell, active) VALUES ('%u', '%u', '%u')", m_charmInfo->GetPetNumber(), itr->first, itr->second.active);
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL);
|
||||||
|
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
|
||||||
|
stmt->setUInt32(1, itr->first);
|
||||||
|
stmt->setUInt8(2, itr->second.active);
|
||||||
|
trans->Append(stmt);
|
||||||
break;
|
break;
|
||||||
case PETSPELL_UNCHANGED:
|
case PETSPELL_UNCHANGED:
|
||||||
continue;
|
continue;
|
||||||
@@ -1238,7 +1303,9 @@ void Pet::_LoadAuras(uint32 timediff)
|
|||||||
|
|
||||||
void Pet::_SaveAuras(SQLTransaction& trans)
|
void Pet::_SaveAuras(SQLTransaction& trans)
|
||||||
{
|
{
|
||||||
trans->PAppend("DELETE FROM pet_aura WHERE guid = '%u'", m_charmInfo->GetPetNumber());
|
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_AURAS);
|
||||||
|
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
|
||||||
|
trans->Append(stmt);
|
||||||
|
|
||||||
for (AuraMap::const_iterator itr = m_ownedAuras.begin(); itr != m_ownedAuras.end() ; ++itr)
|
for (AuraMap::const_iterator itr = m_ownedAuras.begin(); itr != m_ownedAuras.end() ; ++itr)
|
||||||
{
|
{
|
||||||
@@ -1272,11 +1339,26 @@ void Pet::_SaveAuras(SQLTransaction& trans)
|
|||||||
// don't save guid of caster in case we are caster of the spell - guid for pet is generated every pet load, so it won't match saved guid anyways
|
// don't save guid of caster in case we are caster of the spell - guid for pet is generated every pet load, so it won't match saved guid anyways
|
||||||
uint64 casterGUID = (itr->second->GetCasterGUID() == GetGUID()) ? 0 : itr->second->GetCasterGUID();
|
uint64 casterGUID = (itr->second->GetCasterGUID() == GetGUID()) ? 0 : itr->second->GetCasterGUID();
|
||||||
|
|
||||||
trans->PAppend("INSERT INTO pet_aura (guid, caster_guid, spell, effect_mask, recalculate_mask, stackcount, amount0, amount1, amount2, base_amount0, base_amount1, base_amount2, maxduration, remaintime, remaincharges) "
|
uint8 index = 0;
|
||||||
"VALUES ('%u', '" UI64FMTD "', '%u', '%u', '%u', '%u', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%u')",
|
|
||||||
m_charmInfo->GetPetNumber(), casterGUID, itr->second->GetId(), effMask, recalculateMask,
|
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_AURA);
|
||||||
itr->second->GetStackAmount(), damage[0], damage[1], damage[2], baseDamage[0], baseDamage[1], baseDamage[2],
|
stmt->setUInt32(index++, m_charmInfo->GetPetNumber());
|
||||||
itr->second->GetMaxDuration(), itr->second->GetDuration(), itr->second->GetCharges());
|
stmt->setUInt64(index++, casterGUID);
|
||||||
|
stmt->setUInt32(index++, itr->second->GetId());
|
||||||
|
stmt->setUInt8(index++, effMask);
|
||||||
|
stmt->setUInt8(index++, recalculateMask);
|
||||||
|
stmt->setUInt8(index++, itr->second->GetStackAmount());
|
||||||
|
stmt->setInt32(index++, damage[0]);
|
||||||
|
stmt->setInt32(index++, damage[1]);
|
||||||
|
stmt->setInt32(index++, damage[2]);
|
||||||
|
stmt->setInt32(index++, baseDamage[0]);
|
||||||
|
stmt->setInt32(index++, baseDamage[1]);
|
||||||
|
stmt->setInt32(index++, baseDamage[2]);
|
||||||
|
stmt->setInt32(index++, itr->second->GetMaxDuration());
|
||||||
|
stmt->setInt32(index++, itr->second->GetDuration());
|
||||||
|
stmt->setUInt8(index++, itr->second->GetCharges());
|
||||||
|
|
||||||
|
trans->Append(stmt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -648,7 +648,6 @@ void WorldSession::HandlePetRename(WorldPacket & recv_data)
|
|||||||
if (isdeclined)
|
if (isdeclined)
|
||||||
{
|
{
|
||||||
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_DECLINEDNAME);
|
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_DECLINEDNAME);
|
||||||
stmt->setUInt32(0, _player->GetGUIDLow());
|
|
||||||
stmt->setUInt32(0, pet->GetCharmInfo()->GetPetNumber());
|
stmt->setUInt32(0, pet->GetCharmInfo()->GetPetNumber());
|
||||||
trans->Append(stmt);
|
trans->Append(stmt);
|
||||||
|
|
||||||
|
|||||||
@@ -465,10 +465,22 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
|||||||
PREPARE_STATEMENT(CHAR_DEL_GROUP_INSTANCE_BY_MAP_DIFF, "DELETE FROM group_instance USING group_instance LEFT JOIN instance ON group_instance.instance = id WHERE map = ? and difficulty = ?", CONNECTION_ASYNC);
|
PREPARE_STATEMENT(CHAR_DEL_GROUP_INSTANCE_BY_MAP_DIFF, "DELETE FROM group_instance USING group_instance LEFT JOIN instance ON group_instance.instance = id WHERE map = ? and difficulty = ?", CONNECTION_ASYNC);
|
||||||
PREPARE_STATEMENT(CHAR_DEL_INSTANCE_BY_MAP_DIFF, "DELETE FROM instance WHERE map = ? and difficulty = ?", CONNECTION_ASYNC);
|
PREPARE_STATEMENT(CHAR_DEL_INSTANCE_BY_MAP_DIFF, "DELETE FROM instance WHERE map = ? and difficulty = ?", CONNECTION_ASYNC);
|
||||||
PREPARE_STATEMENT(CHAR_DEL_MAIL_ITEM_BY_ID, "DELETE FROM mail_items WHERE mail_id = ?", CONNECTION_ASYNC);
|
PREPARE_STATEMENT(CHAR_DEL_MAIL_ITEM_BY_ID, "DELETE FROM mail_items WHERE mail_id = ?", CONNECTION_ASYNC);
|
||||||
PREPARE_STATEMENT(CHAR_DEL_CHAR_PET_DECLINEDNAME, "DELETE FROM character_pet_declinedname WHERE owner = ? AND id = ?", CONNECTION_ASYNC);
|
PREPARE_STATEMENT(CHAR_DEL_CHAR_PET_DECLINEDNAME, "DELETE FROM character_pet_declinedname WHERE id = ?", CONNECTION_ASYNC);
|
||||||
PREPARE_STATEMENT(CHAR_ADD_CHAR_PET_DECLINEDNAME, "INSERT INTO character_pet_declinedname (id, owner, genitive, dative, accusative, instrumental, prepositional) VALUES (?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
PREPARE_STATEMENT(CHAR_ADD_CHAR_PET_DECLINEDNAME, "INSERT INTO character_pet_declinedname (id, owner, genitive, dative, accusative, instrumental, prepositional) VALUES (?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||||
PREPARE_STATEMENT(CHAR_UPD_CHAR_PET_NAME, "UPDATE character_pet SET name = ?, renamed = 1 WHERE owner = ? AND id = ?", CONNECTION_ASYNC);
|
PREPARE_STATEMENT(CHAR_UPD_CHAR_PET_NAME, "UPDATE character_pet SET name = ?, renamed = 1 WHERE owner = ? AND id = ?", CONNECTION_ASYNC);
|
||||||
PREPARE_STATEMENT(CHAR_INS_PETITION, "INSERT INTO petition (ownerguid, petitionguid, name, type) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
|
PREPARE_STATEMENT(CHAR_INS_PETITION, "INSERT INTO petition (ownerguid, petitionguid, name, type) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||||
PREPARE_STATEMENT(CHAR_DEL_PETITION_BY_GUID, "DELETE FROM petition WHERE petitionguid = ?", CONNECTION_ASYNC);
|
PREPARE_STATEMENT(CHAR_DEL_PETITION_BY_GUID, "DELETE FROM petition WHERE petitionguid = ?", CONNECTION_ASYNC);
|
||||||
PREPARE_STATEMENT(CHAR_DEL_PETITION_SIGNATURE_BY_GUID, "DELETE FROM petition_sign WHERE petitionguid = ?", CONNECTION_ASYNC);
|
PREPARE_STATEMENT(CHAR_DEL_PETITION_SIGNATURE_BY_GUID, "DELETE FROM petition_sign WHERE petitionguid = ?", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_UDP_CHAR_PET_SLOT_BY_SLOT_EXCLUDE_ID, "UPDATE character_pet SET slot = ? WHERE owner = ? AND slot = ? AND id <> ?", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_UDP_CHAR_PET_SLOT_BY_SLOT, "UPDATE character_pet SET slot = ? WHERE owner = ? AND slot = ?", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_UPD_CHAR_PET_SLOT_BY_ID, "UPDATE character_pet SET slot = ? WHERE owner = ? AND id = ?", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_DEL_CHAR_PET_BY_ID, "DELETE FROM character_pet WHERE id = ?", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_DEL_CHAR_PET_BY_SLOT, "DELETE FROM character_pet WHERE owner = ? AND (slot = ? OR slot > ?)", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_DEL_PET_AURAS, "DELETE FROM pet_aura WHERE guid = ?", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_DEL_PET_SPELLS, "DELETE FROM pet_spell WHERE guid = ?", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_DEL_PET_SPELL_COOLDOWNS, "DELETE FROM pet_spell_cooldown WHERE guid = ?", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_INS_PET_SPELL_COOLDOWN, "INSERT INTO pet_spell_cooldown (guid, spell, time) VALUES (?, ?, ?)", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_DEL_PET_SPELL_BY_SPELL, "DELETE FROM pet_spell WHERE guid = ? and spell = ?", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_INS_PET_SPELL, "INSERT INTO pet_spell (guid, spell, active) VALUES (?, ?, ?)", CONNECTION_ASYNC);
|
||||||
|
PREPARE_STATEMENT(CHAR_INS_PET_AURA, "INSERT INTO pet_aura (guid, caster_guid, spell, effect_mask, recalculate_mask, stackcount, amount0, amount1, amount2, base_amount0, base_amount1, base_amount2, maxduration, remaintime, remaincharges) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -434,6 +434,18 @@ enum CharacterDatabaseStatements
|
|||||||
CHAR_INS_PETITION,
|
CHAR_INS_PETITION,
|
||||||
CHAR_DEL_PETITION_BY_GUID,
|
CHAR_DEL_PETITION_BY_GUID,
|
||||||
CHAR_DEL_PETITION_SIGNATURE_BY_GUID,
|
CHAR_DEL_PETITION_SIGNATURE_BY_GUID,
|
||||||
|
CHAR_UDP_CHAR_PET_SLOT_BY_SLOT_EXCLUDE_ID,
|
||||||
|
CHAR_UDP_CHAR_PET_SLOT_BY_SLOT,
|
||||||
|
CHAR_UPD_CHAR_PET_SLOT_BY_ID,
|
||||||
|
CHAR_DEL_CHAR_PET_BY_ID,
|
||||||
|
CHAR_DEL_CHAR_PET_BY_SLOT,
|
||||||
|
CHAR_DEL_PET_AURAS,
|
||||||
|
CHAR_DEL_PET_SPELLS,
|
||||||
|
CHAR_DEL_PET_SPELL_COOLDOWNS,
|
||||||
|
CHAR_INS_PET_SPELL_COOLDOWN,
|
||||||
|
CHAR_DEL_PET_SPELL_BY_SPELL,
|
||||||
|
CHAR_INS_PET_SPELL,
|
||||||
|
CHAR_INS_PET_AURA,
|
||||||
|
|
||||||
MAX_CHARACTERDATABASE_STATEMENTS,
|
MAX_CHARACTERDATABASE_STATEMENTS,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user