Core/Guild: avoid data integrity problems wrapping delete+insert statements in a transaction

This commit is contained in:
ariel-
2016-11-19 23:28:52 -03:00
parent d2bf7237a3
commit 25281ecb31
6 changed files with 184 additions and 157 deletions

View File

@@ -146,7 +146,8 @@ public:
return false;
// player's guild membership checked in AddMember before add
return targetGuild->AddMember(targetGuid);
SQLTransaction trans(nullptr);
return targetGuild->AddMember(trans, targetGuid);
}
static bool HandleGuildUninviteCommand(ChatHandler* handler, char const* args)
@@ -164,7 +165,8 @@ public:
if (!targetGuild)
return false;
targetGuild->DeleteMember(targetGuid, false, true, true);
SQLTransaction trans(nullptr);
targetGuild->DeleteMember(trans, targetGuid, false, true, true);
return true;
}
@@ -191,7 +193,8 @@ public:
return false;
uint8 newRank = uint8(atoi(rankStr));
return targetGuild->ChangeMemberRank(targetGuid, newRank);
SQLTransaction trans(nullptr);
return targetGuild->ChangeMemberRank(trans, targetGuid, newRank);
}
static bool HandleGuildRenameCommand(ChatHandler* handler, char const* _args)