Beispiel #1
0
litesql::DataSource<ActivityInTTS::Row> ActivityInTTS::getRows(const litesql::Database& db, const litesql::Expr& expr)
{
    SelectQuery sel;
    sel.result(Activity.fullName());
    sel.result(TodoTodaySheet.fullName());
    sel.source(table__);
    sel.where(expr);
    return DataSource<ActivityInTTS::Row>(db, sel);
}
Beispiel #2
0
SelectQuery selectObjectQuery(const std::vector<FieldType>& fdatas,
                              const Expr& e) {
    SelectQuery sel;
    Split tables;       
    std::set<LITESQL_String> tableSet;

    for (size_t i = 0; i < fdatas.size(); i++)
        if (tableSet.find(fdatas[i].table()) == tableSet.end()) {
            tables.push_back(fdatas[i].table());
            tableSet.insert(fdatas[i].table());
        }

    Split tableFilters;
    tableFilters.resize(tables.size()-1);
    for (size_t i = 1; i < tables.size(); i++)
        tableFilters[i-1] = tables[i-1] + LITESQL_L(".id_ = ") + tables[i] + LITESQL_L(".id_");
    tableSet.clear();
    for (size_t i = 0; i < tables.size(); i++) {
        sel.source(tables[i]);
        tableSet.insert(tables[i]);
    }
    if (tables.size() > 1)
        sel.where((e && RawExpr(tableFilters.join(LITESQL_L(" AND ")))).asString()); 
    else
        sel.where(e.asString());
    
    for (size_t i = 0; i < fdatas.size(); i++)
        sel.result(fdatas[i].table() + LITESQL_L(".") + fdatas[i].name());

    return sel;
}
Beispiel #3
0
template <> litesql::DataSource<pomotuxdatabase::ActivityInventorySheet> ActivityInAIS::get(const litesql::Database& db, const litesql::Expr& expr, const litesql::Expr& srcExpr)
{
    SelectQuery sel;
    sel.source(table__);
    sel.result(ActivityInventorySheet.fullName());
    sel.where(srcExpr);
    return DataSource<pomotuxdatabase::ActivityInventorySheet>(db, pomotuxdatabase::ActivityInventorySheet::Id.in(sel) && expr);
}