Skip to content

Commit

Permalink
add delete_records0
Browse files Browse the repository at this point in the history
  • Loading branch information
Jacyking committed Feb 18, 2024
1 parent f1de3ff commit 406f369
Show file tree
Hide file tree
Showing 8 changed files with 426 additions and 157 deletions.
2 changes: 0 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.15)
project(ormpp)

set(ENABLE_SQLITE3 ON)

include(cmake/build.cmake)
include(cmake/develop.cmake)
include(cmake/platform.cmake)
Expand Down
2 changes: 1 addition & 1 deletion example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ elseif(ENABLE_MYSQL)
elseif(ENABLE_MARIADB)
target_link_libraries(${PROJECT_NAME} ${MARIADB_LIBRARY})
elseif(ENABLE_SQLITE3)
target_link_libraries(${PROJECT_NAME} sqlite3 dl)
target_link_libraries(${PROJECT_NAME} sqlite3)
endif()

install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
71 changes: 29 additions & 42 deletions example/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,51 +65,38 @@ int main() {
#ifdef ORMPP_ENABLE_SQLITE3
dbng<sqlite> sqlite;
sqlite.connect(db);
sqlite.execute("drop table if exists person");
sqlite.create_datatable<person>(ormpp_auto_key{"id"});
sqlite.insert(person{"other"});
sqlite.insert(person{"purecpp"});
auto vec1 = sqlite.query0<person>();
auto vec2 = sqlite.query0<person>("name=?", "purecpp");
auto vec3 = sqlite.query0<person>("name=?", std::string("purecpp"));
std::cout << "v1 : " << vec1.size() << "\n";
std::cout << "v2 : " << vec2.size() << "\n";
std::cout << "v3 : " << vec3.size() << "\n";
sqlite.create_datatable<student>(ormpp_auto_key{"id"});

// dbng<sqlite> sqlite;
// sqlite.connect(db);
// sqlite.create_datatable<person>(ormpp_auto_key{"id"});
// sqlite.create_datatable<student>(ormpp_auto_key{"id"});

// {
// sqlite.delete_records<person>();
// sqlite.insert<person>({"purecpp"});
// sqlite.insert<person>({"purecpp", 6});
// auto vec = sqlite.query<person>();
// for (auto &[name, age, id] : vec) {
// std::cout << id << ", " << *name << ", " << *age << "\n";
// }
// }
{
sqlite.delete_records<person>();
sqlite.insert<person>({"purecpp"});
sqlite.insert<person>({"purecpp", 6});
auto vec = sqlite.query<person>();
for (auto &[name, age, id] : vec) {
std::cout << id << ", " << *name << ", " << *age << "\n";
}
}

// {
// sqlite.delete_records<student>();
// sqlite.insert<student>({"purecpp", 1});
// sqlite.insert<student>({"purecpp", 2});
// sqlite.insert<student>({"purecpp", 3});
// sqlite.insert<student>({"purecpp", 3});
// {
// auto vec = sqlite.query<student>("name='purecpp'", "order by age
// desc"); for (auto &[name, age, id] : vec) {
// std::cout << id << ", " << name << ", " << age << "\n";
// }
// }
// {
// auto vec = sqlite.query<student>("age=3", "order by id desc", "limit
// 1"); for (auto &[name, age, id] : vec) {
// std::cout << id << ", " << name << ", " << age << "\n";
// }
// }
// }
{
sqlite.delete_records<student>();
sqlite.insert<student>({"purecpp", 1});
sqlite.insert<student>({"purecpp", 2});
sqlite.insert<student>({"purecpp", 3});
sqlite.insert<student>({"purecpp", 3});
{
auto vec = sqlite.query<student>("name='purecpp'", "order by age desc");
for (auto &[name, age, id] : vec) {
std::cout << id << ", " << name << ", " << age << "\n";
}
}
{
auto vec = sqlite.query<student>("age=3", "order by id desc", "limit 1");
for (auto &[name, age, id] : vec) {
std::cout << id << ", " << name << ", " << age << "\n";
}
}
}
#endif

return 0;
Expand Down
9 changes: 7 additions & 2 deletions ormpp/dbng.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,13 @@ class dbng {
}

template <typename T, typename... Args>
std::vector<T> query0(const std::string &sql = "", Args &&...args) {
return db_.template query0<T>(sql, std::forward<Args>(args)...);
bool delete_records0(const std::string &str = "", Args &&...args) {
return db_.template delete_records0<T>(str, std::forward<Args>(args)...);
}

template <typename T, typename... Args>
std::vector<T> query0(const std::string &str = "", Args &&...args) {
return db_.template query0<T>(str, std::forward<Args>(args)...);
}

// restriction, all the args are string, the first is the where condition,
Expand Down
Loading

0 comments on commit 406f369

Please sign in to comment.