Beispiel #1
0
void ZoneDatabase::RefreshPetitionsFromDB()
{
	Petition* newpet;
	std::string query = "SELECT petid, charname, accountname, lastgm, petitiontext, "
                        "zone, urgency, charclass, charrace, charlevel, checkouts, "
                        "unavailables, ischeckedout, senttime, gmtext "
                        "FROM petitions ORDER BY petid";
    auto results = QueryDatabase(query);
	if (!results.Success()) {
		LogFile->write(EQEMuLog::Error, "Error in RefreshPetitionsFromDB query '%s': %s", query.c_str(), results.ErrorMessage().c_str());
		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]);

        if (atoi(row[12]) == 1)
            newpet->SetCheckedOut(true);
        else
            newpet->SetCheckedOut(false);
        petition_list.AddPetition(newpet);
    }

}