Go to the documentation of this file.
7 #ifndef litesql_persistent_hpp
8 #define litesql_persistent_hpp
27 typedef std::map<std::string, std::vector<pair<FieldType, std::string> > > Updates;
32 const std::string& sequence);
33 void update(
const Updates& updates);
35 void updateField(litesql::Persistent::Updates& updates,
36 const std::string& table,
39 updates[table].push_back(make_pair(fld.fieldType(),
40 litesql::convert<const T&, std::string>(fld.value())));
41 fld.setModified(
false);
44 void prepareUpdate(Updates& updates,
const std::string& table);
45 void deleteFromTable(
const std::string& table,
const std::string&
id);
79 virtual void onDelete() {}
virtual ~Persistent()
empty
Definition: persistent.hpp:81
a class that helps creating UPDATE-SQL statements.
Definition: updatequery.hpp:18
holds field value
Definition: field.hpp:75
int oldKey
used to keep track of ID changes.
Definition: persistent.hpp:56
static std::vector< std::string > getTablesFromFieldTypes(const std::vector< FieldType > &fdatas)
selectObjectQuery uses this to list tables used by Persistent
std::string toString(T a)
returns string representation of passed parameter if it can be written to ostringstream
Definition: string.hpp:20
used to inject custom expression into WHERE-clause
Definition: expr.hpp:35
SQL data row wrapper.
Definition: types.hpp:20
const Database * db
pointer to current Database Persistent is assigned to.
Definition: persistent.hpp:49
bool isInDatabase() const
returns true if object is in database
Definition: persistent.hpp:63
std::string groupInsert(const Record &tables, const Records &fields, const Records &values, const std::string &sequence) const
executes multiple INSERT-statements and assigns same 'row id' for first field of every record
Definition: database.cpp:261
A base class of databases.
Definition: database.hpp:33
int atoi(const std::string &s)
string version of atoi
bool inDatabase
flag that indicates that object is stored in some database.
Definition: persistent.hpp:52
std::vector< Record > Records
shortcut
Definition: types.hpp:26
const Persistent & operator=(const Persistent &p)
copies values and keeps fields unchanged
Definition: persistent.cpp:14
Persistent(const Persistent &p)
copies values and registers Field-objects to fields
Definition: persistent.hpp:69
const Database & getDatabase() const
returns reference to Database the object is in
Definition: persistent.hpp:59
std::string escapeSQL(const std::string &str)
escapes ' characters so that they do not break SQL statements.
An abstract base class of persistents objects.
Definition: persistent.hpp:25
Records query(const std::string &query) const
executes SQL query
Definition: database.cpp:240
std::string insert(Record &tables, Records &fieldRecs, Records &values, const std::string &sequence)
executed when object is created into database
Definition: persistent.cpp:23
Persistent(const Database &_db)
creates empty Persistent
Definition: persistent.hpp:77