rcpp_framework/core/database/query_builder.h

111 lines
3.5 KiB
C
Raw Normal View History

#ifndef QUERY_BUILDER_H
#define QUERY_BUILDER_H
#include <string>
#include "core/reference.h"
class QueryResult;
//methods that start with an e escape their params.
class QueryBuilder : public Reference {
public:
virtual QueryBuilder *select();
2021-11-01 17:00:55 +01:00
virtual QueryBuilder *update();
2021-08-20 12:49:57 +02:00
virtual QueryBuilder *del();
2021-08-20 12:49:57 +02:00
virtual QueryBuilder *where();
virtual QueryBuilder *from();
virtual QueryBuilder *insert();
virtual QueryBuilder *values();
virtual QueryBuilder *cvalues();
2021-08-22 21:44:20 +02:00
virtual QueryBuilder *str();
virtual QueryBuilder *cstr();
virtual QueryBuilder *like();
virtual QueryBuilder *select(const std::string &params);
2021-11-01 17:00:55 +01:00
virtual QueryBuilder *update(const std::string &params);
2021-08-20 12:49:57 +02:00
virtual QueryBuilder *del(const std::string &params);
virtual QueryBuilder *where(const std::string &params);
virtual QueryBuilder *from(const std::string &params);
virtual QueryBuilder *insert(const std::string &table_name);
virtual QueryBuilder *insert(const std::string &table_name, const std::string &columns);
virtual QueryBuilder *values(const std::string &params_str);
virtual QueryBuilder *val();
virtual QueryBuilder *val(const std::string &param);
virtual QueryBuilder *val(const char *param);
virtual QueryBuilder *val(const int param);
virtual QueryBuilder *val(const bool param);
2021-08-22 21:44:20 +02:00
virtual QueryBuilder *like(const std::string &str);
virtual QueryBuilder *set();
virtual QueryBuilder *cset();
virtual QueryBuilder *setp(const std::string &col, const std::string &param);
virtual QueryBuilder *setp(const std::string &col, const char *param);
virtual QueryBuilder *setp(const std::string &col, const int param);
virtual QueryBuilder *setp(const std::string &col, const bool param);
2021-08-20 12:49:57 +02:00
virtual QueryBuilder *wp(const std::string &col, const std::string &param);
virtual QueryBuilder *wp(const std::string &col, const char *param);
virtual QueryBuilder *wp(const std::string &col, const int param);
virtual QueryBuilder *wp(const std::string &col, const bool param);
virtual QueryBuilder *nselect(const std::string &params);
virtual QueryBuilder *nupdate(const std::string &params);
virtual QueryBuilder *ndel(const std::string &params);
virtual QueryBuilder *nwhere(const std::string &params);
virtual QueryBuilder *nfrom(const std::string &params);
virtual QueryBuilder *nlike(const std::string &str);
virtual QueryBuilder *nvalues(const std::string &params_str);
virtual QueryBuilder *nval(const std::string &param);
//note col is NOT escaped
virtual QueryBuilder *nsetp(const std::string &col, const std::string &escape_param);
2021-08-20 12:49:57 +02:00
//note col is NOT escaped
virtual QueryBuilder *nwp(const std::string &col, const std::string &escape_param);
2021-08-19 22:03:22 +02:00
virtual QueryBuilder *limit(const int num);
virtual QueryBuilder *offset(const int num);
//l=logical (and, or are operators)
virtual QueryBuilder *land();
virtual QueryBuilder *lor();
2021-08-22 21:44:20 +02:00
virtual QueryBuilder *wildcard();
virtual QueryBuilder *w(const std::string &str);
virtual QueryBuilder *ew(const std::string &str);
virtual QueryBuilder *select_last_insert_id();
virtual std::string escape(const std::string &params);
virtual QueryBuilder *prepare();
virtual QueryBuilder *set_param(const int index, const std::string &value);
virtual QueryBuilder *set_param(const int index, const int value);
virtual QueryBuilder *set_param(const int index, const float value);
virtual void end_command();
2021-08-20 12:49:57 +02:00
virtual QueryBuilder *reset();
virtual Ref<QueryResult> run();
2021-08-19 22:03:22 +02:00
virtual void run_query();
std::string get_result();
2020-12-01 22:23:28 +01:00
void print();
QueryBuilder();
virtual ~QueryBuilder();
std::string query_result;
};
#endif