2013-12-09 2 views
1

C++에서 sqlite에 대한 매개 변수 쿼리를 구현하고 있으며 실행할 때 DatabaseCallback을 업데이트하려고합니다. 나는 쿼리가 문자열 일 때 가능하지만 sqlite3_stmt 일 때 가능하다는 것을 알고 있습니까? 참고 : SQL은 당신이 sqlite3_step 여러 번 호출하고, 각 단계에서 sqlite3_column_* 함수 값을 얻을로되어있다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

답변

0

내 선택 문자열입니다.

sqlite3_exec과 동일한 동작을 실제로 사용하려면 its implementation을 복사하십시오.

+0

고마워, 그게 내가 필요한거야. – user2661463