void ActivityInTTS::link(const litesql::Database& db, const pomotuxdatabase::Activity& o0, const pomotuxdatabase::TodoTodaySheet& o1) { Record values; Split fields; fields.push_back(Activity.name()); values.push_back(o0.id); fields.push_back(TodoTodaySheet.name()); values.push_back(o1.id); db.insert(table__, values, fields); }
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; }
UpdateQuery::operator LITESQL_String() const { LITESQL_String q = LITESQL_L("UPDATE ") + table + LITESQL_L(" SET "); Split sets; for (size_t i = 0; i < fields.size(); i++) sets.push_back(fields[i] + LITESQL_L("=") + values[i]); q += sets.join(LITESQL_L(",")); if (_where.size()) q += LITESQL_L(" WHERE ") + _where; return q; }
string OCILib::getSQLType(AT_field_type fieldType, const string& length) const { Split s; switch(fieldType) { case A_field_type_integer: return "INTEGER"; case A_field_type_bigint: return "BIGINT"; case A_field_type_string: s.push_back("VARCHAR("); (length.size()>0)?(s.push_back(length)):(s.push_back("4000")); s.push_back(")"); return s.join(""); case A_field_type_float: return "BINARY_FLOAT"; case A_field_type_double: return "BINARY_DOUBLE"; case A_field_type_boolean: return "INTEGER"; case A_field_type_date: return "INTEGER"; case A_field_type_time: return "INTEGER"; case A_field_type_datetime: return "INTEGER"; case A_field_type_blob: return "BLOB"; default: return ""; } }