version 0.1.4
[fms.git] / src / db / sqlite3statement.cpp
index 54c26fe..538ed06 100644 (file)
@@ -44,6 +44,7 @@ Statement::~Statement()
        \r
        Finalize();\r
        \r
+       /*\r
        std::vector<char *>::iterator i;\r
        for(i=textptrs.begin(); i!=textptrs.end(); i++)\r
        {\r
@@ -52,6 +53,7 @@ Statement::~Statement()
                        delete [] (*i);\r
                }\r
        }\r
+       */\r
 }\r
 \r
 const bool Statement::Bind(const int column)\r
@@ -121,13 +123,16 @@ const bool Statement::Bind(const int column, const std::string &value)
 {\r
        if(Valid() && column>=0 && column<m_parametercount)\r
        {\r
-               char *text=new char[value.size()+1];\r
-               strncpy(text,value.c_str(),value.size());\r
-               text[value.size()]=NULL;\r
-               textptrs.push_back(text);\r
+               //char *text=new char[value.size()+1];\r
+               //strncpy(text,value.c_str(),value.size());\r
+               //text[value.size()]=NULL;\r
+               //textptrs.push_back(text);\r
+               \r
                //ZThread::Guard<ZThread::Mutex> g(DB::instance()->m_mutex);\r
                PThread::Guard g(DB::Instance()->m_mutex);\r
-               if(sqlite3_bind_text(m_statement,column+1,text,value.size(),NULL)==SQLITE_OK)\r
+               m_boundtext.push_back(std::vector<char>(value.begin(),value.end()));\r
+               //if(sqlite3_bind_text(m_statement,column+1,text,value.size(),NULL)==SQLITE_OK)\r
+               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)              \r
                {\r
                        return true;\r
                }\r