return QVariant();
}
+unsigned FormationsModel::insert_new(const std::string &name)
+{
+ // Insert the new row into the database.
+ sqlite3_stmt *stmt;
+ int ret = sqlite3_prepare_v2(db, "INSERT INTO formation (name, offense) VALUES (?, ?)", -1, &stmt, 0);
+ if (ret != SQLITE_OK) {
+ fprintf(stderr, "INSERT prepare: %s\n", sqlite3_errmsg(db));
+ abort();
+ }
+
+ sqlite3_bind_text(stmt, 1, name.data(), name.size(), SQLITE_STATIC);
+ sqlite3_bind_int(stmt, 2, offense);
+
+ ret = sqlite3_step(stmt);
+ if (ret == SQLITE_ROW) {
+ fprintf(stderr, "INSERT step: %s\n", sqlite3_errmsg(db));
+ abort();
+ }
+
+ ret = sqlite3_finalize(stmt);
+ if (ret != SQLITE_OK) {
+ fprintf(stderr, "INSERT finalize: %s\n", sqlite3_errmsg(db));
+ abort();
+ }
+
+ beginResetModel(); // Simplest for our use, though not ideal.
+
+ int formation_id = sqlite3_last_insert_rowid(db);
+ formations.push_back(Formation{ formation_id, name });
+
+ endResetModel();
+
+ return formation_id;
+}
+
void FormationsModel::load_data()
{
formations.clear();