Account IOLoginData::loadAccount(uint32_t accno)
{
Account acc;
Database* db = Database::getInstance();
DBQuery query;
DBResult result;
query << "SELECT `id`, `password`, `type`, `premdays`, `lastday`, `key`, `warnings` FROM accounts WHERE id = " << accno;
if(db->connect() && db->storeQuery(query, result))
{
acc.accnumber = result.getDataInt("id");
acc.password = result.getDataString("password");
acc.accountType = (AccountType_t)result.getDataInt("type");
acc.premiumDays = result.getDataInt("premdays");
acc.lastDay = result.getDataInt("lastday");
acc.recoveryKey = result.getDataString("key");
acc.warnings = result.getDataInt("warnings");
query << "SELECT `name` FROM players WHERE account_id = " << accno;
if(db->storeQuery(query, result))
{
for(uint32_t i = 0; i < result.getNumRows(); ++i)
{
std::string ss = result.getDataString("name", i);
acc.charList.push_back(ss.c_str());
}
acc.charList.sort();
}
}
return acc;
}