X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fdb%2Fsqlite3statement.cpp;h=789afb1e9e94e72c2da8b5065fb2bb058745c7e5;hb=dec33c63afafabf83c3039e916725cac6faef9b3;hp=81df27a419c6421a822f33318ea2425bb0c6d17b;hpb=f60495a029c54358f82956482fe203fe2b7b5b23;p=fms.git diff --git a/src/db/sqlite3statement.cpp b/src/db/sqlite3statement.cpp index 81df27a..789afb1 100644 --- a/src/db/sqlite3statement.cpp +++ b/src/db/sqlite3statement.cpp @@ -169,8 +169,7 @@ void Statement::Finalize() { if(m_statement) { - //ZThread::Guard g(DB::instance()->m_mutex); - PThread::Guard g(DB::Instance()->m_mutex); + Poco::ScopedLock g(DB::Instance()->m_mutex); m_statementcount[m_statement]--; if(m_statementcount[m_statement]<=0) { @@ -194,8 +193,7 @@ Statement &Statement::operator=(const Statement &rhs) if(m_statement) { - //ZThread::Guard g(DB::instance()->m_mutex); - PThread::Guard g(DB::Instance()->m_mutex); + Poco::ScopedLock g(DB::Instance()->m_mutex); m_statementcount[m_statement]++; } } @@ -206,8 +204,7 @@ const bool Statement::Reset() { if(Valid()) { - //ZThread::Guard g(DB::instance()->m_mutex); - PThread::Guard g(DB::Instance()->m_mutex); + Poco::ScopedLock g(DB::Instance()->m_mutex); if(sqlite3_reset(m_statement)==SQLITE_OK) { return true; @@ -227,10 +224,24 @@ const bool Statement::ResultBlob(const int column, void *data, int &length) { if(Valid() && column>=0 && column 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); + int bloblength=sqlite3_column_bytes(m_statement,column); + if(bloblength>length) + { + bloblength=length; + } + if(bloblength=0 && column g(DB::instance()->m_mutex); - //PThread::Guard g(DB::Instance()->m_mutex); result=sqlite3_column_double(m_statement,column); return true; } @@ -258,8 +267,6 @@ const bool Statement::ResultInt(const int column, int &result) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); - //PThread::Guard g(DB::Instance()->m_mutex); result=sqlite3_column_int(m_statement,column); return true; } @@ -273,8 +280,6 @@ const bool Statement::ResultNull(const int column) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); - //PThread::Guard g(DB::Instance()->m_mutex); if(sqlite3_column_type(m_statement,column)==SQLITE_NULL) { return true; @@ -294,8 +299,6 @@ const bool Statement::ResultText(const int column, std::string &result) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); - //PThread::Guard g(DB::Instance()->m_mutex); const unsigned char *cresult=sqlite3_column_text(m_statement,column); if(cresult) { @@ -318,8 +321,7 @@ const bool Statement::Step(const bool saveinsertrowid) m_rowreturned=false; if(Valid()) { - //ZThread::Guard g(DB::instance()->m_mutex); - PThread::Guard g(DB::Instance()->m_mutex); + Poco::ScopedLock g(DB::Instance()->m_mutex); int result=sqlite3_step(m_statement); if(result==SQLITE_OK || result==SQLITE_ROW || result==SQLITE_DONE) { @@ -346,8 +348,7 @@ const bool Statement::Step(const bool saveinsertrowid) const bool Statement::Valid() { - //ZThread::Guard g(DB::instance()->m_mutex); - PThread::Guard g(DB::Instance()->m_mutex); + Poco::ScopedLock g(DB::Instance()->m_mutex); return m_statement ? true : false ; }