4 #include <zthread/Singleton.h>
\r
5 #include <zthread/Mutex.h>
\r
9 #include "../sqlite3db.h"
\r
14 class DB:public ZThread::Singleton<DB>
\r
18 DB(std::string filename);
\r
21 const bool Open(const std::string &filename);
\r
24 const int GetLastResult() { return m_lastresult; } // gets result of last action taken - standard sqlite3 return codes
\r
25 const int GetLastError(std::string &errormessage); // gets last error of this database
\r
27 const bool IsOpen();
\r
29 const bool Execute(const std::string &sql); // executes a statement returing true if successful
\r
30 const bool ExecuteInsert(const std::string &sql, long &insertid); // call when inserting data and the insertid of the row inserted is needed, otherwise Execute can be called if the row id is not needed
\r
31 Recordset Query(const std::string &sql); // executes a statement returning a recordset
\r
32 Statement Prepare(const std::string &sql); // prepares a statement returning the statement object
\r
34 const int SetBusyTimeout(const int ms); // sets busy timeout in ms. SQLite will wait for a lock up to this many ms before returning SQLITE_BUSY
\r
36 sqlite3 *GetDB() { return m_db; }
\r
38 ZThread::Mutex m_mutex; // public so that recordset and statment can lock this mutex themselves
\r
49 #endif // _sqlite3db_
\r