RefreshPetitionsFromDB converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-08-18 21:46:46 -07:00
parent 6364d2c31d
commit 748748dda9

View File

@ -273,41 +273,40 @@ void ZoneDatabase::InsertPetitionToDB(Petition* wpet)
void ZoneDatabase::RefreshPetitionsFromDB() void ZoneDatabase::RefreshPetitionsFromDB()
{ {
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
MYSQL_RES *result;
MYSQL_ROW row;
Petition* newpet; Petition* newpet;
if (RunQuery(query, MakeAnyLenString(&query, "SELECT petid, charname, accountname, lastgm, petitiontext, zone, urgency, charclass, charrace, charlevel, checkouts, unavailables, ischeckedout, senttime, gmtext from petitions order by petid"), errbuf, &result)) std::string query = "SELECT petid, charname, accountname, lastgm, petitiontext, "
{ "zone, urgency, charclass, charrace, charlevel, checkouts, "
safe_delete_array(query); "unavailables, ischeckedout, senttime, gmtext "
while ((row = mysql_fetch_row(result))) { "FROM petitions ORDER BY petid";
newpet = new Petition(atoi(row[0])); auto results = QueryDatabase(query);
newpet->SetCName(row[1]); if (!results.Success()) {
newpet->SetAName(row[2]); LogFile->write(EQEMuLog::Error, "Error in RefreshPetitionsFromDB query '%s': %s", query.c_str(), results.ErrorMessage().c_str());
newpet->SetLastGM(row[3]);
newpet->SetPetitionText(row[4]);
newpet->SetZone(atoi(row[5]));
newpet->SetUrgency(atoi(row[6]));
newpet->SetClass(atoi(row[7]));
newpet->SetRace(atoi(row[8]));
newpet->SetLevel(atoi(row[9]));
newpet->SetCheckouts(atoi(row[10]));
newpet->SetUnavails(atoi(row[11]));
newpet->SetSentTime2(atol(row[13]));
newpet->SetGMText(row[14]);
std::cout << "Petition " << row[0] << " pettime = " << newpet->GetSentTime() << std::endl;
if (atoi(row[12]) == 1) newpet->SetCheckedOut(true);
else newpet->SetCheckedOut(false);
petition_list.AddPetition(newpet);
}
mysql_free_result(result);
}
else {
LogFile->write(EQEMuLog::Error, "Error in RefreshPetitionsFromDB query '%s': %s", query, errbuf);
safe_delete_array(query);
return; return;
} }
return; for (auto row = results.begin(); row != results.end(); ++row) {
newpet = new Petition(atoi(row[0]));
newpet->SetCName(row[1]);
newpet->SetAName(row[2]);
newpet->SetLastGM(row[3]);
newpet->SetPetitionText(row[4]);
newpet->SetZone(atoi(row[5]));
newpet->SetUrgency(atoi(row[6]));
newpet->SetClass(atoi(row[7]));
newpet->SetRace(atoi(row[8]));
newpet->SetLevel(atoi(row[9]));
newpet->SetCheckouts(atoi(row[10]));
newpet->SetUnavails(atoi(row[11]));
newpet->SetSentTime2(atol(row[13]));
newpet->SetGMText(row[14]);
std::cout << "Petition " << row[0] << " pettime = " << newpet->GetSentTime() << std::endl;
if (atoi(row[12]) == 1)
newpet->SetCheckedOut(true);
else
newpet->SetCheckedOut(false);
petition_list.AddPetition(newpet);
}
} }