#pragma once #include "enginedata.h" #include #include #include using namespace std; struct WhereClause{ int col; RowItem value; WhereClause(void); WhereClause(const int _c,const RowItem &_v); }; struct QueryResult{ int res; vector rows; string msg; //empty message indicates success QueryResult(void); QueryResult(int); QueryResult(int,const vector&); QueryResult(int,const vector&,const string&); QueryResult(int,const string&); }; struct Query{ string tablename; virtual QueryResult execute(map&); }; struct CreateQuery : public Query{ int nc; ColHeader *header; CreateQuery(void); void setHeader(const ColHeader *hd); QueryResult execute(map &tables); }; struct FindQuery : public Query{ unsigned int limit; //-1=unlimited int sort; //0=no sort, 1=sort, -1=reverse sort vector where; FindQuery(void); QueryResult execute(map &tables); }; struct InsertQuery : public Query{ Row row; InsertQuery(const Row &_r); InsertQuery(Row &&_r); QueryResult execute(map &tables); };