2013-12-09 17 views
1

我正在C++中爲sqlite實現參數查詢,我希望在執行時更新DatabaseCallback。我知道這是可能的,當你的查詢是一個字符串,但它可能時,它是一個sqlite3_stmt? 注意:SQL是我的選擇字符串執行sqlite3_stmt時使用DatabaseCallback

  DatabaseCallback* pCallback; 
      sqlite3_stmt *stmt; 
      const char *pzTest; 
      int selectCommand = sqlite3_prepare_v2(database_, sql.c_str(), strlen(sql.c_str()), &stmt, &pzTest); 

      if(selectCommand == SQLITE_OK) 
      { 
       //Add the parameter values 
       int parameterPosition = 1; 

       if(parameters.size() > 0) 
       { 
        size_t count = parameters.size(); 
        for(string str : parameters) 
        { 
         int returncode = sqlite3_bind_text(stmt,parameterPosition, str.c_str(), strlen(str.c_str()),SQLITE_TRANSIENT); 
         parameterPosition++; 
        } 

       } 
      } 

      sqlite3_step(stmt); 
      sqlite3_finalize(stmt); 
+0

什麼回調?你的意思是'sqlite3_exec'嗎? –

+0

是的。除了使用sqlite3_stmt之外,我想爲回調函數實現sqlite3_exec。 – user2661463

回答