#include "../../include/db/sqlite3db/sqlite3statement.h"\r
\r
+#ifdef QUERY_LOG\r
+#include <Poco/Logger.h>\r
+#include <Poco/FormattingChannel.h>\r
+#include <Poco/PatternFormatter.h>\r
+#include <Poco/FileChannel.h>\r
+#include "../../include/stringfunctions.h"\r
+#endif\r
+\r
#ifdef XMEM\r
#include <xmem.h>\r
#endif\r
namespace SQLite3DB\r
{\r
\r
+Poco::FastMutex Statement::m_mutex;\r
std::map<sqlite3_stmt *, long> Statement::m_statementcount;\r
\r
Statement::Statement():m_statement(0),m_parametercount(0),m_resultcolumncount(0),m_rowreturned(false),m_lastinsertrowid(-1)\r
\r
if(m_statement)\r
{\r
+ Poco::ScopedLock<Poco::FastMutex> g(m_mutex);\r
m_statementcount[m_statement]++;\r
}\r
}\r
{\r
if(m_statement)\r
{\r
- Poco::ScopedLock<Poco::FastMutex> g(DB::Instance()->m_mutex);\r
+ Poco::ScopedLock<Poco::FastMutex> g(m_mutex);\r
m_statementcount[m_statement]--;\r
if(m_statementcount[m_statement]<=0)\r
{\r
\r
if(m_statement)\r
{\r
- Poco::ScopedLock<Poco::FastMutex> g(DB::Instance()->m_mutex);\r
+ Poco::ScopedLock<Poco::FastMutex> g(m_mutex);\r
m_statementcount[m_statement]++;\r
}\r
}\r
{\r
if(Valid())\r
{\r
- Poco::ScopedLock<Poco::FastMutex> g(DB::Instance()->m_mutex);\r
if(sqlite3_reset(m_statement)==SQLITE_OK)\r
{\r
return true;\r
m_rowreturned=false;\r
if(Valid())\r
{\r
- Poco::ScopedLock<Poco::FastMutex> g(DB::Instance()->m_mutex);\r
int result=sqlite3_step(m_statement);\r
+#ifdef QUERY_LOG\r
+ size_t temp=reinterpret_cast<size_t>(m_statement);\r
+ std::string tempstr("");\r
+ StringFunctions::Convert(temp,tempstr);\r
+ Poco::Logger::get("querylog").information("Step : "+tempstr);\r
+#endif\r
if(result==SQLITE_OK || result==SQLITE_ROW || result==SQLITE_DONE)\r
{\r
if(result==SQLITE_ROW)\r
}\r
if(saveinsertrowid)\r
{\r
- m_lastinsertrowid=sqlite3_last_insert_rowid(DB::Instance()->GetDB());\r
+ m_lastinsertrowid=sqlite3_last_insert_rowid(sqlite3_db_handle(m_statement));\r
}\r
return true;\r
}\r
\r
const bool Statement::Valid()\r
{\r
- Poco::ScopedLock<Poco::FastMutex> g(DB::Instance()->m_mutex);\r
return m_statement ? true : false ;\r
}\r
\r