4 #include <Poco/Mutex.h>
\r
7 #include "../sqlite3db.h"
\r
8 #include "../../threadwrapper/singleton.h"
\r
10 #if SQLITE_VERSION_NUMBER<3005000
\r
11 #error "Your version of SQLite is too old! 3.5.0 or later is required."
\r
17 class DB:public Singleton<DB>
\r
21 DB(const std::string &filename);
\r
24 const bool Open(const std::string &filename);
\r
27 const int GetLastResult() { return m_lastresult; } // gets result of last action taken - standard sqlite3 return codes
\r
28 const int GetLastError(std::string &errormessage); // gets last error of this database
\r
30 const bool IsOpen();
\r
32 const bool Execute(const std::string &sql); // executes a statement returing true if successful
\r
33 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
34 Recordset Query(const std::string &sql); // executes a statement returning a recordset
\r
35 Statement Prepare(const std::string &sql); // prepares a statement returning the statement object
\r
37 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
39 sqlite3 *GetDB() { return m_db; }
\r
41 Poco::FastMutex m_mutex; // public so that recordset and statment can lock this mutex themselves
\r
52 #endif // _sqlite3db_
\r