mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 09:31:30 +00:00
DeleteCharacter converted to QueryDatabase
This commit is contained in:
parent
3cb7d9e3fe
commit
3aacf7df6a
@ -415,12 +415,8 @@ returns false on failure, true otherwise
|
|||||||
*/
|
*/
|
||||||
bool Database::DeleteCharacter(char *name)
|
bool Database::DeleteCharacter(char *name)
|
||||||
{
|
{
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
char *query=nullptr;
|
||||||
char *query=0;
|
int charid;
|
||||||
MYSQL_RES *result;
|
|
||||||
MYSQL_ROW row;
|
|
||||||
int charid, matches;
|
|
||||||
uint32 affected_rows;
|
|
||||||
|
|
||||||
if(!name || !strlen(name))
|
if(!name || !strlen(name))
|
||||||
{
|
{
|
||||||
@ -433,249 +429,171 @@ bool Database::DeleteCharacter(char *name)
|
|||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << "DeleteCharacter: Attempting to delete '" << name << "'" << std::endl;
|
std::cout << "DeleteCharacter: Attempting to delete '" << name << "'" << std::endl;
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "SELECT id from character_ WHERE name='%s'", name), errbuf, &result);
|
|
||||||
if (query)
|
auto results = QueryDatabase(query, MakeAnyLenString(&query, "SELECT id from character_ WHERE name='%s'", name));
|
||||||
|
|
||||||
|
safe_delete_array(query);
|
||||||
|
|
||||||
|
if(results.RowCount() != 1)
|
||||||
{
|
{
|
||||||
safe_delete_array(query);
|
std::cerr << "DeleteCharacter error: got " << results.RowCount() << " rows matching '" << name << "'" << std::endl;
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
matches = mysql_num_rows(result);
|
|
||||||
if(matches == 1)
|
|
||||||
{
|
|
||||||
row = mysql_fetch_row(result);
|
|
||||||
charid = atoi(row[0]);
|
|
||||||
#if DEBUG >= 5
|
|
||||||
std::cout << "DeleteCharacter: found '" << name << "' with char id: " << charid << std::endl;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
std::cerr << "DeleteCharacter error: got " << matches << " rows matching '" << name << "'" << std::endl;
|
|
||||||
if(result)
|
|
||||||
{
|
|
||||||
mysql_free_result(result);
|
|
||||||
result = nullptr;
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(result)
|
auto row = results.begin();
|
||||||
{
|
charid = atoi(row[0]);
|
||||||
mysql_free_result(result);
|
|
||||||
result = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
|
std::cout << "DeleteCharacter: found '" << name << "' with char id: " << charid << std::endl;
|
||||||
std::cout << "DeleteCharacter: deleting << '" << name << "' (id " << charid << "): " << std::endl;
|
std::cout << "DeleteCharacter: deleting << '" << name << "' (id " << charid << "): " << std::endl;
|
||||||
std::cout << " quest_globals";
|
std::cout << " quest_globals";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE from quest_globals WHERE charid='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE from quest_globals WHERE charid='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " character_tasks";
|
std::cout << " character_tasks";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE from character_tasks WHERE charid='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE from character_tasks WHERE charid='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " character_activities";
|
std::cout << " character_activities";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE from character_activities WHERE charid='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE from character_activities WHERE charid='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " character_enabledtasks";
|
std::cout << " character_enabledtasks";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE from character_enabledtasks WHERE charid='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE from character_enabledtasks WHERE charid='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " completed_tasks";
|
std::cout << " completed_tasks";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE from completed_tasks WHERE charid='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE from completed_tasks WHERE charid='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " friends";
|
std::cout << " friends";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE from friends WHERE charid='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE from friends WHERE charid='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " mail";
|
std::cout << " mail";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE from mail WHERE charid='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE from mail WHERE charid='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " ptimers";
|
std::cout << " ptimers";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE from timers WHERE char_id='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE from timers WHERE char_id='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " inventory";
|
std::cout << " inventory";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE from inventory WHERE charid='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE from inventory WHERE charid='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " guild_members";
|
std::cout << " guild_members";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BOTS
|
#ifdef BOTS
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM guild_members WHERE char_id='%d' AND GetMobTypeById(%i) = 'C'", charid), errbuf, nullptr, &affected_rows);
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM guild_members WHERE char_id='%d' AND GetMobTypeById(%i) = 'C'", charid));
|
||||||
#else
|
#else
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM guild_members WHERE char_id='%d'", charid), errbuf, nullptr, &affected_rows);
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM guild_members WHERE char_id='%d'", charid));
|
||||||
#endif
|
#endif
|
||||||
if(query)
|
safe_delete_array(query);
|
||||||
{
|
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " recipes";
|
std::cout << " recipes";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM char_recipe_list WHERE char_id='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM char_recipe_list WHERE char_id='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " adventure_stats";
|
std::cout << " adventure_stats";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM adventure_stats WHERE player_id='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM adventure_stats WHERE player_id='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " zone_flags";
|
std::cout << " zone_flags";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM zone_flags WHERE charID='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM zone_flags WHERE charID='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " titles";
|
std::cout << " titles";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM titles WHERE char_id='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM titles WHERE char_id='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " titlesets";
|
std::cout << " titlesets";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM player_titlesets WHERE char_id='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM player_titlesets WHERE char_id='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " keyring";
|
std::cout << " keyring";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM keyring WHERE char_id='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM keyring WHERE char_id='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " factions";
|
std::cout << " factions";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM faction_values WHERE char_id='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM faction_values WHERE char_id='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " instances";
|
std::cout << " instances";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM instance_list_player WHERE charid='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM instance_list_player WHERE charid='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " _character";
|
std::cout << " _character";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE from character_ WHERE id='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
results = QueryDatabase(query, MakeAnyLenString(&query, "DELETE from character_ WHERE id='%d'", charid));
|
||||||
|
safe_delete_array(query);
|
||||||
|
|
||||||
|
if(results.RowsAffected() != 1) // here we have to have a match or it's an error
|
||||||
{
|
{
|
||||||
safe_delete_array(query);
|
LogFile->write(EQEMuLog::Error, "DeleteCharacter: error: delete operation affected %d rows\n", results.RowsAffected());
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
if(affected_rows != 1) // here we have to have a match or it's an error
|
|
||||||
{
|
|
||||||
LogFile->write(EQEMuLog::Error, "DeleteCharacter: error: delete operation affected %d rows\n", affected_rows);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << " alternate currency";
|
std::cout << " alternate currency";
|
||||||
#endif
|
#endif
|
||||||
RunQuery(query, MakeAnyLenString(&query, "DELETE FROM character_alt_currency WHERE char_id='%d'", charid), errbuf, nullptr, &affected_rows);
|
|
||||||
if(query)
|
QueryDatabase(query, MakeAnyLenString(&query, "DELETE FROM character_alt_currency WHERE char_id='%d'", charid));
|
||||||
{
|
safe_delete_array(query);
|
||||||
safe_delete_array(query);
|
|
||||||
query = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if DEBUG >= 5
|
#if DEBUG >= 5
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user