diff options
Diffstat (limited to 'src/database/query.cpp')
-rw-r--r-- | src/database/query.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/database/query.cpp b/src/database/query.cpp new file mode 100644 index 0000000..ba63a92 --- /dev/null +++ b/src/database/query.cpp @@ -0,0 +1,34 @@ +#include <database/query.hpp> +#include <database/column.hpp> + +template <> +void add_param<Id>(Query&, const Id&) +{} + +void actual_add_param(Query& query, const std::string& val) +{ + query.params.push_back(val); +} + +void actual_add_param(Query& query, const OptionalBool& val) +{ + if (!val.is_set) + query.params.push_back("0"); + else if (val.value) + query.params.push_back("1"); + else + query.params.push_back("-1"); +} + +Query& operator<<(Query& query, const char* str) +{ + query.body += str; + return query; +} + +Query& operator<<(Query& query, const std::string& str) +{ + query.body += "?"; + actual_add_param(query, str); + return query; +} |