X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fdb%2Fsqlite3statement.cpp;h=538ed0663171677ba4aee5d0d74f6d17277e1031;hb=5f8a87e41beeda971d6a47a6c6b0555da00af978;hp=39c699f1595fd00b03008cd527066b7a7b016edf;hpb=8adfd604a97d385869b0ce763b35d014d7aa2cca;p=fms.git diff --git a/src/db/sqlite3statement.cpp b/src/db/sqlite3statement.cpp index 39c699f..538ed06 100644 --- a/src/db/sqlite3statement.cpp +++ b/src/db/sqlite3statement.cpp @@ -44,6 +44,7 @@ Statement::~Statement() Finalize(); + /* std::vector::iterator i; for(i=textptrs.begin(); i!=textptrs.end(); i++) { @@ -52,13 +53,15 @@ Statement::~Statement() delete [] (*i); } } + */ } const bool Statement::Bind(const int column) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); if(sqlite3_bind_null(m_statement,column+1)==SQLITE_OK) { return true; @@ -78,7 +81,8 @@ const bool Statement::Bind(const int column, const int value) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); if(sqlite3_bind_int(m_statement,column+1,value)==SQLITE_OK) { return true; @@ -98,7 +102,8 @@ const bool Statement::Bind(const int column, const double value) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); if(sqlite3_bind_double(m_statement,column+1,value)==SQLITE_OK) { return true; @@ -118,12 +123,16 @@ const bool Statement::Bind(const int column, const std::string &value) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); - if(sqlite3_bind_text(m_statement,column+1,text,value.size(),NULL)==SQLITE_OK) + //char *text=new char[value.size()+1]; + //strncpy(text,value.c_str(),value.size()); + //text[value.size()]=NULL; + //textptrs.push_back(text); + + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); + m_boundtext.push_back(std::vector(value.begin(),value.end())); + //if(sqlite3_bind_text(m_statement,column+1,text,value.size(),NULL)==SQLITE_OK) + if(sqlite3_bind_text(m_statement,column+1,&m_boundtext[m_boundtext.size()-1][0],m_boundtext[m_boundtext.size()-1].size(),NULL)==SQLITE_OK) { return true; } @@ -142,7 +151,8 @@ const bool Statement::Bind(const int column, const void *data, const int length) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); if(sqlite3_bind_blob(m_statement,column+1,data,length,NULL)==SQLITE_OK) { return true; @@ -162,7 +172,8 @@ void Statement::Finalize() { if(m_statement) { - ZThread::Guard g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); m_statementcount[m_statement]--; if(m_statementcount[m_statement]<=0) { @@ -186,7 +197,8 @@ Statement &Statement::operator=(const Statement &rhs) if(m_statement) { - ZThread::Guard g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); m_statementcount[m_statement]++; } } @@ -197,7 +209,8 @@ const bool Statement::Reset() { if(Valid()) { - ZThread::Guard g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); if(sqlite3_reset(m_statement)==SQLITE_OK) { return true; @@ -217,7 +230,8 @@ const bool Statement::ResultBlob(const int column, void *data, int &length) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); data=(void *)sqlite3_column_blob(m_statement,column); length=sqlite3_column_bytes(m_statement,column); return true; @@ -232,7 +246,8 @@ const bool Statement::ResultDouble(const int column, double &result) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); result=sqlite3_column_double(m_statement,column); return true; } @@ -246,7 +261,8 @@ const bool Statement::ResultInt(const int column, int &result) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); result=sqlite3_column_int(m_statement,column); return true; } @@ -260,7 +276,8 @@ const bool Statement::ResultNull(const int column) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); if(sqlite3_column_type(m_statement,column)==SQLITE_NULL) { return true; @@ -280,7 +297,8 @@ const bool Statement::ResultText(const int column, std::string &result) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); const unsigned char *cresult=sqlite3_column_text(m_statement,column); if(cresult) { @@ -303,7 +321,8 @@ const bool Statement::Step(const bool saveinsertrowid) m_rowreturned=false; if(Valid()) { - ZThread::Guard g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); int result=sqlite3_step(m_statement); if(result==SQLITE_OK || result==SQLITE_ROW || result==SQLITE_DONE) { @@ -313,7 +332,7 @@ const bool Statement::Step(const bool saveinsertrowid) } if(saveinsertrowid) { - m_lastinsertrowid=sqlite3_last_insert_rowid(DB::instance()->GetDB()); + m_lastinsertrowid=sqlite3_last_insert_rowid(DB::Instance()->GetDB()); } return true; } @@ -330,7 +349,8 @@ const bool Statement::Step(const bool saveinsertrowid) const bool Statement::Valid() { - ZThread::Guard g(DB::instance()->m_mutex); + //ZThread::Guard g(DB::instance()->m_mutex); + PThread::Guard g(DB::Instance()->m_mutex); return m_statement ? true : false ; }