📄 exampledatabase.cpp
字号:
#include "exampledatabase.hpp"namespace example {using namespace litesql;PersonPersonRelationMother::Row::Row(const litesql::Database& db, const litesql::Record& rec) : person2(PersonPersonRelationMother::Person2), person1(PersonPersonRelationMother::Person1) { switch(rec.size()) { case 2: person2 = rec[1]; case 1: person1 = rec[0]; }}const std::string PersonPersonRelationMother::table__("Person_Person_Mother");const litesql::FieldType PersonPersonRelationMother::Person1("Person1","INTEGER",table__);const litesql::FieldType PersonPersonRelationMother::Person2("Person2","INTEGER",table__);void PersonPersonRelationMother::link(const litesql::Database& db, const example::Person& o0, const example::Person& o1) { Record values; Split fields; fields.push_back(Person1.name()); values.push_back(o0.id); fields.push_back(Person2.name()); values.push_back(o1.id); db.insert(table__, values, fields);}void PersonPersonRelationMother::unlink(const litesql::Database& db, const example::Person& o0, const example::Person& o1) { db.delete_(table__, (Person1 == o0.id && Person2 == o1.id));}void PersonPersonRelationMother::del(const litesql::Database& db, const litesql::Expr& expr) { db.delete_(table__, expr);}litesql::DataSource<PersonPersonRelationMother::Row> PersonPersonRelationMother::getRows(const litesql::Database& db, const litesql::Expr& expr) { SelectQuery sel; sel.result(Person1.fullName()); sel.result(Person2.fullName()); sel.source(table__); sel.where(expr); return DataSource<PersonPersonRelationMother::Row>(db, sel);}litesql::DataSource<example::Person> PersonPersonRelationMother::getPerson1(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Person1.fullName()); sel.where(srcExpr); return DataSource<example::Person>(db, example::Person::Id.in(sel) && expr);}litesql::DataSource<example::Person> PersonPersonRelationMother::getPerson2(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Person2.fullName()); sel.where(srcExpr); return DataSource<example::Person>(db, example::Person::Id.in(sel) && expr);}PersonPersonRelationFather::Row::Row(const litesql::Database& db, const litesql::Record& rec) : person2(PersonPersonRelationFather::Person2), person1(PersonPersonRelationFather::Person1) { switch(rec.size()) { case 2: person2 = rec[1]; case 1: person1 = rec[0]; }}const std::string PersonPersonRelationFather::table__("Person_Person_Father");const litesql::FieldType PersonPersonRelationFather::Person1("Person1","INTEGER",table__);const litesql::FieldType PersonPersonRelationFather::Person2("Person2","INTEGER",table__);void PersonPersonRelationFather::link(const litesql::Database& db, const example::Person& o0, const example::Person& o1) { Record values; Split fields; fields.push_back(Person1.name()); values.push_back(o0.id); fields.push_back(Person2.name()); values.push_back(o1.id); db.insert(table__, values, fields);}void PersonPersonRelationFather::unlink(const litesql::Database& db, const example::Person& o0, const example::Person& o1) { db.delete_(table__, (Person1 == o0.id && Person2 == o1.id));}void PersonPersonRelationFather::del(const litesql::Database& db, const litesql::Expr& expr) { db.delete_(table__, expr);}litesql::DataSource<PersonPersonRelationFather::Row> PersonPersonRelationFather::getRows(const litesql::Database& db, const litesql::Expr& expr) { SelectQuery sel; sel.result(Person1.fullName()); sel.result(Person2.fullName()); sel.source(table__); sel.where(expr); return DataSource<PersonPersonRelationFather::Row>(db, sel);}litesql::DataSource<example::Person> PersonPersonRelationFather::getPerson1(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Person1.fullName()); sel.where(srcExpr); return DataSource<example::Person>(db, example::Person::Id.in(sel) && expr);}litesql::DataSource<example::Person> PersonPersonRelationFather::getPerson2(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Person2.fullName()); sel.where(srcExpr); return DataSource<example::Person>(db, example::Person::Id.in(sel) && expr);}PersonPersonRelationSiblings::Row::Row(const litesql::Database& db, const litesql::Record& rec) : person2(PersonPersonRelationSiblings::Person2), person1(PersonPersonRelationSiblings::Person1) { switch(rec.size()) { case 2: person2 = rec[1]; case 1: person1 = rec[0]; }}const std::string PersonPersonRelationSiblings::table__("Person_Person_Siblings");const litesql::FieldType PersonPersonRelationSiblings::Person1("Person1","INTEGER",table__);const litesql::FieldType PersonPersonRelationSiblings::Person2("Person2","INTEGER",table__);void PersonPersonRelationSiblings::link(const litesql::Database& db, const example::Person& o0, const example::Person& o1) { Record values; Split fields; fields.push_back(Person1.name()); values.push_back(o0.id); fields.push_back(Person2.name()); values.push_back(o1.id); db.insert(table__, values, fields); fields.clear(); values.clear(); fields.push_back(Person1.name()); values.push_back(o1.id); fields.push_back(Person2.name()); values.push_back(o0.id); db.insert(table__, values, fields);}void PersonPersonRelationSiblings::unlink(const litesql::Database& db, const example::Person& o0, const example::Person& o1) { db.delete_(table__, (Person1 == o0.id && Person2 == o1.id)); db.delete_(table__, (Person1 == o1.id && Person2 == o0.id));}void PersonPersonRelationSiblings::del(const litesql::Database& db, const litesql::Expr& expr) { db.delete_(table__, expr);}litesql::DataSource<PersonPersonRelationSiblings::Row> PersonPersonRelationSiblings::getRows(const litesql::Database& db, const litesql::Expr& expr) { SelectQuery sel; sel.result(Person1.fullName()); sel.result(Person2.fullName()); sel.source(table__); sel.where(expr); return DataSource<PersonPersonRelationSiblings::Row>(db, sel);}litesql::DataSource<example::Person> PersonPersonRelationSiblings::getPerson1(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Person1.fullName()); sel.where(srcExpr); return DataSource<example::Person>(db, example::Person::Id.in(sel) && expr);}litesql::DataSource<example::Person> PersonPersonRelationSiblings::getPerson2(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Person2.fullName()); sel.where(srcExpr); return DataSource<example::Person>(db, example::Person::Id.in(sel) && expr);}PersonPersonRelationChildren::Row::Row(const litesql::Database& db, const litesql::Record& rec) : person2(PersonPersonRelationChildren::Person2), person1(PersonPersonRelationChildren::Person1) { switch(rec.size()) { case 2: person2 = rec[1]; case 1: person1 = rec[0]; }}const std::string PersonPersonRelationChildren::table__("Person_Person_Children");const litesql::FieldType PersonPersonRelationChildren::Person1("Person1","INTEGER",table__);const litesql::FieldType PersonPersonRelationChildren::Person2("Person2","INTEGER",table__);void PersonPersonRelationChildren::link(const litesql::Database& db, const example::Person& o0, const example::Person& o1) { Record values; Split fields; fields.push_back(Person1.name()); values.push_back(o0.id); fields.push_back(Person2.name()); values.push_back(o1.id); db.insert(table__, values, fields);}void PersonPersonRelationChildren::unlink(const litesql::Database& db, const example::Person& o0, const example::Person& o1) { db.delete_(table__, (Person1 == o0.id && Person2 == o1.id));}void PersonPersonRelationChildren::del(const litesql::Database& db, const litesql::Expr& expr) { db.delete_(table__, expr);}litesql::DataSource<PersonPersonRelationChildren::Row> PersonPersonRelationChildren::getRows(const litesql::Database& db, const litesql::Expr& expr) { SelectQuery sel; sel.result(Person1.fullName()); sel.result(Person2.fullName()); sel.source(table__); sel.where(expr); return DataSource<PersonPersonRelationChildren::Row>(db, sel);}litesql::DataSource<example::Person> PersonPersonRelationChildren::getPerson1(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Person1.fullName()); sel.where(srcExpr); return DataSource<example::Person>(db, example::Person::Id.in(sel) && expr);}litesql::DataSource<example::Person> PersonPersonRelationChildren::getPerson2(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Person2.fullName()); sel.where(srcExpr); return DataSource<example::Person>(db, example::Person::Id.in(sel) && expr);}RoleRelation::Row::Row(const litesql::Database& db, const litesql::Record& rec) : role(RoleRelation::Role), person(RoleRelation::Person) { switch(rec.size()) { case 2: role = rec[1]; case 1: person = rec[0]; }}const std::string RoleRelation::table__("Person_Role_Roles");const litesql::FieldType RoleRelation::Person("Person1","INTEGER",table__);const litesql::FieldType RoleRelation::Role("Role2","INTEGER",table__);void RoleRelation::link(const litesql::Database& db, const example::Person& o0, const example::Role& o1) { Record values; Split fields; fields.push_back(Person.name()); values.push_back(o0.id); fields.push_back(Role.name()); values.push_back(o1.id); db.insert(table__, values, fields);}void RoleRelation::unlink(const litesql::Database& db, const example::Person& o0, const example::Role& o1) { db.delete_(table__, (Person == o0.id && Role == o1.id));}void RoleRelation::del(const litesql::Database& db, const litesql::Expr& expr) { db.delete_(table__, expr);}litesql::DataSource<RoleRelation::Row> RoleRelation::getRows(const litesql::Database& db, const litesql::Expr& expr) { SelectQuery sel; sel.result(Person.fullName()); sel.result(Role.fullName()); sel.source(table__); sel.where(expr); return DataSource<RoleRelation::Row>(db, sel);}template <> litesql::DataSource<example::Person> RoleRelation::get(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Person.fullName()); sel.where(srcExpr); return DataSource<example::Person>(db, example::Person::Id.in(sel) && expr);}template <> litesql::DataSource<example::Role> RoleRelation::get(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Role.fullName()); sel.where(srcExpr); return DataSource<example::Role>(db, example::Role::Id.in(sel) && expr);}SchoolStudentRelation::Row::Row(const litesql::Database& db, const litesql::Record& rec) : student(SchoolStudentRelation::Student), school(SchoolStudentRelation::School) { switch(rec.size()) { case 2: student = rec[1]; case 1: school = rec[0]; }}const std::string SchoolStudentRelation::table__("School_Student_");const litesql::FieldType SchoolStudentRelation::School("School1","INTEGER",table__);const litesql::FieldType SchoolStudentRelation::Student("Student2","INTEGER",table__);void SchoolStudentRelation::link(const litesql::Database& db, const example::School& o0, const example::Student& o1) { Record values; Split fields; fields.push_back(School.name()); values.push_back(o0.id); fields.push_back(Student.name()); values.push_back(o1.id); db.insert(table__, values, fields);}void SchoolStudentRelation::unlink(const litesql::Database& db, const example::School& o0, const example::Student& o1) { db.delete_(table__, (School == o0.id && Student == o1.id));}void SchoolStudentRelation::del(const litesql::Database& db, const litesql::Expr& expr) { db.delete_(table__, expr);}litesql::DataSource<SchoolStudentRelation::Row> SchoolStudentRelation::getRows(const litesql::Database& db, const litesql::Expr& expr) { SelectQuery sel; sel.result(School.fullName()); sel.result(Student.fullName()); sel.source(table__); sel.where(expr); return DataSource<SchoolStudentRelation::Row>(db, sel);}template <> litesql::DataSource<example::School> SchoolStudentRelation::get(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(School.fullName()); sel.where(srcExpr); return DataSource<example::School>(db, example::School::Id.in(sel) && expr);}template <> litesql::DataSource<example::Student> SchoolStudentRelation::get(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__); sel.result(Student.fullName()); sel.where(srcExpr); return DataSource<example::Student>(db, example::Student::Id.in(sel) && expr);}EmployeeOfficeRelation::Row::Row(const litesql::Database& db, const litesql::Record& rec) : office(EmployeeOfficeRelation::Office), employee(EmployeeOfficeRelation::Employee) { switch(rec.size()) { case 2: office = rec[1]; case 1: employee = rec[0]; }}const std::string EmployeeOfficeRelation::table__("Employee_Office_");const litesql::FieldType EmployeeOfficeRelation::Employee("Employee1","INTEGER",table__);const litesql::FieldType EmployeeOfficeRelation::Office("Office2","INTEGER",table__);void EmployeeOfficeRelation::link(const litesql::Database& db, const example::Employee& o0, const example::Office& o1) { Record values; Split fields; fields.push_back(Employee.name()); values.push_back(o0.id); fields.push_back(Office.name()); values.push_back(o1.id); db.insert(table__, values, fields);}void EmployeeOfficeRelation::unlink(const litesql::Database& db, const example::Employee& o0, const example::Office& o1) { db.delete_(table__, (Employee == o0.id && Office == o1.id));}void EmployeeOfficeRelation::del(const litesql::Database& db, const litesql::Expr& expr) { db.delete_(table__, expr);}litesql::DataSource<EmployeeOfficeRelation::Row> EmployeeOfficeRelation::getRows(const litesql::Database& db, const litesql::Expr& expr) { SelectQuery sel; sel.result(Employee.fullName()); sel.result(Office.fullName()); sel.source(table__); sel.where(expr); return DataSource<EmployeeOfficeRelation::Row>(db, sel);}template <> litesql::DataSource<example::Employee> EmployeeOfficeRelation::get(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr) { SelectQuery sel; sel.source(table__);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -