diff --git a/database/categorydaosqlite.cpp b/database/categorydaosqlite.cpp index 019e825..b5848af 100644 --- a/database/categorydaosqlite.cpp +++ b/database/categorydaosqlite.cpp @@ -72,6 +72,7 @@ void CategoryDaoSqlite::deleteCategory(std::string name) } catch(sqlite::sqlite_exception &e) { + *db << "ROLLBACK"; throwFrom(e); } } @@ -105,18 +106,21 @@ std::vector CategoryDaoSqlite::fetchMembers(std::string name, QueryOption try { - auto query = *db << "SELECT page.id, page.name AS name, page.title, page.lastrevision, page.visible FROM categorymember INNER JOIN page ON page.id = " + auto query = *db << "SELECT page.id, page.name AS name, page.title, page.lastrevision, page.visible FROM " + "categorymember INNER JOIN page ON page.id = " "categorymember.page WHERE category = (SELECT id FROM category WHERE name = ? ) AND " + queryoptions << name; - query >> [&](unsigned int id, std::string name, std::string title, unsigned int lastrevision, bool visible) { + query >> [&](unsigned int id, std::string name, std::string title, unsigned int lastrevision, bool visible) + { Page p; p.name = name; p.pageid = id; p.title = title; p.current_revision = lastrevision; p.listed = visible; - result.push_back(p); }; + result.push_back(p); + }; } catch(const sqlite::exceptions::no_rows &e) { diff --git a/database/pagedaosqlite.cpp b/database/pagedaosqlite.cpp index 23420f4..dab88f8 100644 --- a/database/pagedaosqlite.cpp +++ b/database/pagedaosqlite.cpp @@ -109,6 +109,7 @@ void PageDaoSqlite::deletePage(std::string page) } catch(sqlite::sqlite_exception &e) { + *db << "ROLLBACK"; throwFrom(e); } } @@ -140,15 +141,17 @@ std::vector PageDaoSqlite::getPageList(QueryOption option) .setPrependWhere(true) .build(); std::string query = "SELECT id, name, title, lastrevision, visible FROM page " + queryOption; - *db << query >> [&](unsigned int pageid, std::string name, std::string title,unsigned int current_revision, bool visible ) { - + *db << query >> + [&](unsigned int pageid, std::string name, std::string title, unsigned int current_revision, bool visible) + { Page tmp; tmp.pageid = pageid; tmp.name = name; tmp.title = title; tmp.current_revision = current_revision; tmp.listed = visible; - result.push_back(tmp); }; + result.push_back(tmp); + }; } catch(const sqlite::errors::no_rows &e) {