我有一个C ++程序,该程序具有此功能,在某些时候调用sqlite3_step()。事实证明,到达sqlite3_step()函数时,程序与消息“程序意外完成”发生冲突。我到底在做什么错?

bool Database::removeRepository(string repoName)
{
    string sql = "DELETE FROM ";
    sql += tableName + " WHERE NAME='" + repoName + "'";

    sqlite3_stmt* deleteStmt = nullptr;

    int prep_results = sqlite3_prepare_v2(connection, sql.c_str(), sql.size(), &deleteStmt, NULL);

    int results = sqlite3_step(deleteStmt);

    sqlite3_finalize(deleteStmt);

    if(results == SQLITE_DONE)
        return true;
    else
        return false;
}

最佳答案

几乎可以肯定,您的sqlite3_prepare_v2调用失败了。您应该检查prep_results的值,看看它是什么(有一个列表here

关于c++ - sqlite3_step()有什么问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25017176/

10-10 22:41