⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exampledatabase.cpp

📁 LiteSQL is a C++ library that integrates C++ objects tightly to relational database and thus provide
💻 CPP
📖 第 1 页 / 共 4 页
字号:
#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 + -