我正在用C ++实现sqlite的参数查询,我希望在执行时更新DatabaseCallback。我知道你的查询是一个字符串是可能的,但它是否可能是一个sqlite3_stmt? 注意:sql是我的选择字符串
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 :(得分:0)
您应该多次拨打sqlite3_step,并在每个步骤中使用sqlite3_column_*功能获取值。
如果您确实希望与sqlite3_exec
具有相同的行为,请复制its implementation。