7 #ifndef litesql_database_hpp 8 #define litesql_database_hpp 30 EqualName(
const std::string& name) : m_name(name) {};
55 string name, type, sql;
56 SchemaItem(
const string& n,
const string& t,
const string& s)
57 : name(n), type(t), sql(s) {}
60 void storeSchemaItem(
const SchemaItem& s)
const;
64 return std::vector<SchemaItem>();
68 std::vector<SchemaItem> getCurrentSchema()
const;
77 void upgradeTable(
string name,
string oldSchema,
string newSchema)
const;
79 bool addColumn(
const string & name,
const ColumnDefinition & column_def)
const;
90 Database(
const string& backendType,
const string& connInfo);
103 bool needsUpgrade()
const;
105 void upgrade()
const;
109 Records query(
const string &query)
const;
111 Cursor<T> cursor(
const string& query)
const {
113 cerr << query << endl;
123 void insert(
const string &table,
const Record &r,
133 string sequence)
const;
138 void delete_(
const string &table,
const Expr& e=
Expr())
const;
Definition: backend.hpp:14
virtual void rollback() const
rollback SQL transaction
Definition: backend.hpp:70
A base class of databases.
Definition: database.hpp:37
virtual std::vector< SchemaItem > getSchema() const
returns database schema.
Definition: database.hpp:63
A base class for expression in WHERE - clause.
Definition: expr.hpp:19
Contains Expr-class hierarchy and operator overloadings for them.
contains class Record and typedef Records
Definition: database.hpp:22
virtual Cursor * cursor(const string &query) const =0
executes SQL-query
An abstract base class for interfacing with relational databases.
Definition: backend.hpp:19
intermediate representation of single entity in relational database, table, index or sequence ...
Definition: database.hpp:53
void rollback() const
cancels active SQL transaction
Definition: database.hpp:144
SQL data row wrapper.
Definition: types.hpp:19
Definition: database.hpp:27
splits and joins strings.
Definition: split.hpp:15
bool verbose
verbosity, prints queries to cerr if true
Definition: database.hpp:83
virtual void commit() const
commit SQL transaction
Definition: backend.hpp:68
Classes Backend, Backend::Cursor and Backend::Result.
used to iterate results of SQL statement, creates objects of type T from retrieved records...
Definition: cursor.hpp:22
virtual void begin() const
begin SQL transaction, may or may not have an effect
Definition: backend.hpp:66
std::vector< Record > Records
shortcut
Definition: types.hpp:26
void commit() const
commits SQL transaction
Definition: database.hpp:142
Backend * backend
backend implementation
Definition: database.hpp:50
void begin() const
begins SQL transaction
Definition: database.hpp:140