1 #include "../../include/db/sqlite3db.h"
\r
15 DB::DB(std::string filename)
\r
29 const bool DB::Close()
\r
33 //ZThread::Guard<ZThread::Mutex> g(m_mutex);
\r
34 PThread::Guard g(m_mutex);
\r
35 m_lastresult=sqlite3_close(m_db);
\r
36 if(m_lastresult==SQLITE_OK)
\r
52 const bool DB::Execute(const std::string &sql)
\r
56 //ZThread::Guard<ZThread::Mutex> g(m_mutex);
\r
57 PThread::Guard g(m_mutex);
\r
58 m_lastresult=sqlite3_exec(m_db,sql.c_str(),NULL,NULL,NULL);
\r
59 if(m_lastresult==SQLITE_OK)
\r
74 const bool DB::ExecuteInsert(const std::string &sql, long &insertid)
\r
78 //ZThread::Guard<ZThread::Mutex> g(m_mutex);
\r
79 PThread::Guard g(m_mutex);
\r
80 m_lastresult=sqlite3_exec(m_db,sql.c_str(),NULL,NULL,NULL);
\r
81 if(m_lastresult==SQLITE_OK)
\r
83 insertid=sqlite3_last_insert_rowid(m_db);
\r
97 const int DB::GetLastError(std::string &errormessage)
\r
101 //ZThread::Guard<ZThread::Mutex> g(m_mutex);
\r
102 PThread::Guard g(m_mutex);
\r
103 int errcode=sqlite3_errcode(m_db);
\r
104 const char *errmsg=sqlite3_errmsg(m_db);
\r
107 errormessage=errmsg;
\r
117 void DB::Initialize()
\r
120 m_lastresult=SQLITE_OK;
\r
123 const bool DB::IsOpen()
\r
125 //ZThread::Guard<ZThread::Mutex> g(m_mutex);
\r
126 PThread::Guard g(m_mutex);
\r
127 return m_db ? true : false;
\r
130 const bool DB::Open(const std::string &filename)
\r
132 if(IsOpen()==false)
\r
136 if(IsOpen()==false)
\r
138 //ZThread::Guard<ZThread::Mutex> g(m_mutex);
\r
139 PThread::Guard g(m_mutex);
\r
140 m_lastresult=sqlite3_open(filename.c_str(),&m_db);
\r
141 if(m_lastresult==SQLITE_OK)
\r
156 Statement DB::Prepare(const std::string &sql)
\r
160 //ZThread::Guard<ZThread::Mutex> g(m_mutex);
\r
161 PThread::Guard g(m_mutex);
\r
162 sqlite3_stmt *statement=NULL;
\r
163 m_lastresult=sqlite3_prepare_v2(m_db,sql.c_str(),sql.size(),&statement,NULL);
\r
164 if(m_lastresult==SQLITE_OK)
\r
166 return Statement(statement);
\r
170 return Statement();
\r
175 return Statement();
\r
179 Recordset DB::Query(const std::string &sql)
\r
183 //ZThread::Guard<ZThread::Mutex> g(m_mutex);
\r
184 PThread::Guard g(m_mutex);
\r
187 m_lastresult=sqlite3_get_table(m_db,sql.c_str(),&rs,&rows,&cols,NULL);
\r
188 if(m_lastresult==SQLITE_OK)
\r
190 return Recordset(rs,rows,cols);
\r
194 sqlite3_free_table(rs);
\r
195 return Recordset();
\r
200 return Recordset();
\r
204 const int DB::SetBusyTimeout(const int ms)
\r
208 //ZThread::Guard<ZThread::Mutex> g(m_mutex);
\r
209 PThread::Guard g(m_mutex);
\r
210 m_lastresult=sqlite3_busy_timeout(m_db,ms);
\r
211 return m_lastresult;
\r
215 return SQLITE_ERROR;
\r