X-Git-Url: https://git.pterodactylus.net/?p=fms.git;a=blobdiff_plain;f=src%2Fdb%2Fsqlite3statement.cpp;h=81df27a419c6421a822f33318ea2425bb0c6d17b;hp=54c26fedb9f3cf9d0afa0908c251cb77bf254301;hb=f60495a029c54358f82956482fe203fe2b7b5b23;hpb=c7fcb4c4bc5012a584add81a9509fc1f84c3c688 diff --git a/src/db/sqlite3statement.cpp b/src/db/sqlite3statement.cpp index 54c26fe..81df27a 100644 --- a/src/db/sqlite3statement.cpp +++ b/src/db/sqlite3statement.cpp @@ -15,6 +15,7 @@ Statement::Statement() m_parametercount=0; m_resultcolumncount=0; m_rowreturned=false; + m_lastinsertrowid=-1; } Statement::Statement(sqlite3_stmt *statement) @@ -23,6 +24,7 @@ Statement::Statement(sqlite3_stmt *statement) m_parametercount=sqlite3_bind_parameter_count(m_statement); m_resultcolumncount=sqlite3_column_count(m_statement); m_rowreturned=false; + m_lastinsertrowid=-1; if(m_statement) { @@ -36,6 +38,7 @@ Statement::Statement(const Statement &rhs) m_parametercount=0; m_resultcolumncount=0; m_rowreturned=false; + m_lastinsertrowid=-1; *this=rhs; } @@ -44,6 +47,7 @@ Statement::~Statement() Finalize(); + /* std::vector::iterator i; for(i=textptrs.begin(); i!=textptrs.end(); i++) { @@ -52,6 +56,8 @@ Statement::~Statement() delete [] (*i); } } + */ + } const bool Statement::Bind(const int column) @@ -59,7 +65,7 @@ const bool Statement::Bind(const int column) if(Valid() && column>=0 && column g(DB::instance()->m_mutex); - PThread::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; @@ -80,7 +86,7 @@ const bool Statement::Bind(const int column, const int value) if(Valid() && column>=0 && column g(DB::instance()->m_mutex); - PThread::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; @@ -101,7 +107,7 @@ const bool Statement::Bind(const int column, const double value) if(Valid() && column>=0 && column g(DB::instance()->m_mutex); - PThread::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; @@ -121,13 +127,9 @@ const bool Statement::Bind(const int column, const std::string &value) { if(Valid() && column>=0 && column g(DB::instance()->m_mutex); - PThread::Guard g(DB::Instance()->m_mutex); - if(sqlite3_bind_text(m_statement,column+1,text,value.size(),NULL)==SQLITE_OK) + //PThread::Guard g(DB::Instance()->m_mutex); + if(sqlite3_bind_text(m_statement,column+1,value.c_str(),value.size(),SQLITE_TRANSIENT)==SQLITE_OK) { return true; } @@ -147,8 +149,8 @@ const bool Statement::Bind(const int column, const void *data, const int length) if(Valid() && column>=0 && column 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) + //PThread::Guard g(DB::Instance()->m_mutex); + if(sqlite3_bind_blob(m_statement,column+1,data,length,SQLITE_TRANSIENT)==SQLITE_OK) { return true; } @@ -226,7 +228,7 @@ 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); + //PThread::Guard g(DB::Instance()->m_mutex); data=(void *)sqlite3_column_blob(m_statement,column); length=sqlite3_column_bytes(m_statement,column); return true; @@ -242,7 +244,7 @@ const bool Statement::ResultDouble(const int column, double &result) if(Valid() && column>=0 && column g(DB::instance()->m_mutex); - PThread::Guard g(DB::Instance()->m_mutex); + //PThread::Guard g(DB::Instance()->m_mutex); result=sqlite3_column_double(m_statement,column); return true; } @@ -257,7 +259,7 @@ 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); + //PThread::Guard g(DB::Instance()->m_mutex); result=sqlite3_column_int(m_statement,column); return true; } @@ -272,7 +274,7 @@ const bool Statement::ResultNull(const int column) if(Valid() && column>=0 && column g(DB::instance()->m_mutex); - PThread::Guard g(DB::Instance()->m_mutex); + //PThread::Guard g(DB::Instance()->m_mutex); if(sqlite3_column_type(m_statement,column)==SQLITE_NULL) { return true; @@ -293,7 +295,7 @@ 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); + //PThread::Guard g(DB::Instance()->m_mutex); const unsigned char *cresult=sqlite3_column_text(m_statement,column); if(cresult) {