#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "iflytop/components/sqlite_orm/sqlite_orm.hpp" using namespace sqlite_orm; struct User { int id; std::string firstName; int lastName; std::string birthDate; std::unique_ptr imageUrl; int typeId; }; struct UserType { int id; std::string name; }; int main(int argc, char const *argv[]) { sqlite3 *db; char *zErrMsg = 0; int rc; // rc = sqlite3_open("test.db", &db); // if (rc) { // fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); // exit(0); // } else { // fprintf(stderr, "Opened database successfully\n"); // } // sqlite3_close(db); { auto storage = make_storage("./db.sqlite", // make_table("users", // make_column("id", &User::id), // make_column("first_name", &User::firstName), // make_column("last_name", &User::lastName), // make_column("birth_date", &User::birthDate), // make_column("image_url", &User::imageUrl), // make_column("type_id", &User::typeId)), // make_table("user_types", // make_column("id", &UserType::id, primary_key().autoincrement()), // make_column("name", &UserType::name, default_value("name_placeholder")))); // storage.dump(); // storage.sync_schema( storage.sync_schema(); storage.filename(); std::cout << "storage.filename():" << storage.filename() << std::endl; storage.sync_schema(); storage.insert(User{1, "Nicola", 2, "1856", nullptr, 0}); storage.insert(User{-1, "Linus", 2, "1969", nullptr, 0}); storage.insert(User{-1, "Mark", 3, "1984", nullptr, 0}); auto allEmployees = storage.get_all(); for (auto &employee : allEmployees) { std::cout << employee.id << ' ' << employee.firstName << ' ' << employee.lastName << std::endl; } // storage.sync_schema(); } return 0; }