#include "dbase.h" //int dbDatabase::Query(const String &queryString, dbRecordSet &rs1) { Value dbDatabase::Query(const String &queryString) { unsigned int i, j, f, h, p, b, n, a; String tbn, whr; Array ord, groupBy; Array ordStyle; bool b1, validRecord; //dbRecordSet rs1; dbRecordSet rs1; //rs1.Reset(); Vector tkn = StringToToken(queryString); if(String(tkn[0]) == "SELECT") { ExecuteSelect(tkn, rs1); //StringStream s; //s.SetStoring(); //rs1.Serialize(s); //return String(s); return RawToValue(rs1); } else if(String(tkn[0]) == "DELETE") { return ExecuteDelete(tkn); } else if(String(tkn[0]) == "UPDATE") { return ExecuteUpdate(tkn); } else if(String(tkn[0]) == "INSERT") { return ExecuteInsert(tkn); } return 0; } void dbDatabase::ExecuteSelect(Vector &tkn, dbRecordSet &result) { unsigned int i, j, f, h, p, b, n, a; String tbn, whr; Array ord, groupBy; Array ordStyle; bool b1, validRecord; n = tkn.GetCount(); // cerco il nome della tabella for(f=1; f keys; for(f=1; f &tkn) { unsigned int i, j, f, h, p, b, n, a; String table, whr; bool b1, validRecord; n = tkn.GetCount(); // cerco il nome della tabella for(f=0; f values; bool s = false; for(f=1; f values; Vector buff = StringToToken(tkn.At(f).Mid(1, tkn.At(f).GetLength()-2)); for(int u=0; u= 0x0100 && t <= 0x02ff) || t == MTDB_STR) { rec1(values.GetKey(k)) = CSVDequote(values[k]); } } PutRecord(h, MTDB_TB_APP, rec1, true); n++; return n; }