Esempio n. 1
0
void Statistics::load() {
    using namespace Database;

    SelectQuery query;
    query.addColumn("statistics", "stat_type");
    query.addColumn("statistics", "stat_players");
    query.addColumn("statistics", "stat_bin");
    query.addColumn("statistics", "stat_count");
    query.addEqualCondition<int>("statistics", "stat_version", versionId);
    query.addServerTable("statistics");

    auto result = query.execute();

    for (const auto &row : result) {
        int type = row["stat_type"].as<int>();
        int players_online = row["stat_players"].as<int>();
        int bin = row["stat_bin"].as<int>();
        int count = row["stat_count"].as<int>();

        while (statisticsDB[type].size() <= static_cast<size_t>(players_online)) {
            statisticsDB[type].emplace_back();
        }

        statisticsDB[type][players_online][bin] = count;
    }
}
Esempio n. 2
0
void Statistics::loadTypes() {
    using namespace Database;

    SelectQuery query;
    query.addColumn("statistics_types", "stat_type_id");
    query.addColumn("statistics_types", "stat_type_name");
    query.addServerTable("statistics_types");

    auto result = query.execute();

    for (const auto &row : result) {
        types.emplace(row["stat_type_name"].as<std::string>(), row["stat_type_id"].as<int>());
    }
}