/** * Resets the version table information by removing all version table info. * It also recreates the version table in the db. * * @param be Backend struct * @return TRUE if successful, FALSE if error */ bool GncSqlBackend::reset_version_info() noexcept { bool ok = create_table (VERSION_TABLE_NAME, version_table); m_versions.clear(); set_table_version ("Gnucash", gnc_prefs_get_long_version ()); set_table_version ("Gnucash-Resave", GNUCASH_RESAVE_VERSION); return ok; }
bool GncSqlBackend::create_table(const std::string& table_name, int table_version, const EntryVec& col_table) noexcept { if (create_table (table_name, col_table)) return set_table_version (table_name, table_version); return false; }
/** * Sees if the version table exists, and if it does, loads the info into * the version hash table. Otherwise, it creates an empty version table. * * @param be Backend struct */ void GncSqlBackend::init_version_info() noexcept { if (m_conn->does_table_exist (VERSION_TABLE_NAME)) { std::string sql {"SELECT * FROM "}; sql += VERSION_TABLE_NAME; auto stmt = m_conn->create_statement_from_sql(sql); auto result = m_conn->execute_select_statement (stmt); for (const auto& row : *result) { auto name = row.get_string_at_col (TABLE_COL_NAME); unsigned int version = row.get_int_at_col (VERSION_COL_NAME); m_versions.push_back(std::make_pair(name, version)); } } else { create_table (VERSION_TABLE_NAME, version_table); set_table_version("Gnucash", gnc_prefs_get_long_version ()); set_table_version("Gnucash-Resave", GNUCASH_RESAVE_VERSION); } }