Quark  0.1
Database.h++
Go to the documentation of this file.
1 
2 #ifndef __libquark_util_Database_hxx
3 #define __libquark_util_Database_hxx
4 
5 #include <QSqlDatabase>
6 #include <QSqlQuery>
7 
8 #include <quark/Quark.h++>
9 #include <quark/QuarkTypes.h++>
10 
11 namespace quark {
12 namespace util {
13 
24 {
25  public:
26 
28  virtual ~Database();
29 
52  virtual bool open();
53 
63  virtual void close();
64 
66  inline QString file() const
67  { return(_file); }
68 
69  RowID lastInsertRowID(const QSqlQuery &query);
70 
71  protected:
72 
80  Database(const QString &schemaFile, const QString &file);
81 
88  QSqlQuery *buildQuery(const QString &sql);
89 
96  QSqlQuery *buildQueryFromFile(const QString &schemaFile);
97 
103  inline bool transaction()
104  { return(_db.transaction()); }
105 
111  inline bool rollback()
112  { return(_db.rollback()); }
113 
119  inline bool commit()
120  { return(_db.commit()); }
121 
129  virtual bool check();
130 
139  virtual bool prepareStatements();
140 
145  virtual void teardownStatements();
146 
154  virtual bool populateTables();
155 
163  virtual bool cacheData();
164 
172  int executeSQL(const QString &sql);
173 
181  int executeSQLFromFile(const QString &sqlFile);
182 
186  QString generateGUID();
187 
188  private:
189 
190  bool init();
191  bool buildSchema();
192 
193  QString _schemaFile;
194  QString _file;
195  bool _new;
196  QSqlDatabase _db;
197  static QAtomicInt _connectionID;
198 };
199 
200 } // namespace util
201 } // namespace quark
202 
203 #endif // __libquark_util_Database_hxx
Definition: BarChartView.h++:6
bool commit()
Commits the current transaction.
Definition: Database.h++:119
bool rollback()
Rolls back the current transaction.
Definition: Database.h++:111
#define LIBQUARK_API
Definition: Quark.h++:18
bool transaction()
Begins a transaction.
Definition: Database.h++:103
QString file() const
Returns the database filename.
Definition: Database.h++:66
A base class for objects that represent SQL databases.
Definition: Database.h++:23
qint64 RowID
Definition: QuarkTypes.h++:9