gpt4 book ai didi

c++ - 无法在 SQLite 中设置 user_version

转载 作者:搜寻专家 更新时间:2023-10-30 23:08:20 24 4
gpt4 key购买 nike

我正在尝试使用 SQLite 数据库的 user_version 功能。我无法实际设置 user_version,我不确定为什么。我尝试了各种执行查询以更新 user_version 的方法,并在网上进行了广泛搜索,但现在完全不知所措。

这是我的查询字符串。

const std::string kSetUserVersion = "PRAGMA user_version = 1;";

这是我尝试设置 user_version 的地方,但我的结果仍然是 0。

 // Set the user version and check it is correct.
sqlite3_exec(dbConnection->db_handle, kSetUserVersion.c_str(), nullptr, nullptr, &db_err); // <-- this is not working!
long currentVersion = sqlite3_exec(dbConnection->db_handle, kGetUserVersion.c_str(), nullptr, nullptr, &db_err);

// If the PRAGMA statement fails, no error returns and it fails silently, so having to add check to see if it has worked.
if (currentVersion != 1) // Setting the user_version has failed.
{
throw DatabaseAccessException(sqlite3_errmsg(dbConnection->db_handle));
}

非常感谢任何帮助。

最佳答案

sqlite3_exec() 返回值是状态/错误代码,而不是查询的值。

要获取查询结果值,有两个主要选项:

  1. 使用 sqlite3_prepare_v2()sqlite_step() 用于 SQLITE_ROW 并使用例如访问数据sqlite3_column_int(),使用 sqlite3_finalize() 完成准备好的查询。

  2. 提供回调函数作为您的 sqlite3_exec() 的第三个参数以捕获值。参见例如例如:Proper use of callback function of sqlite3 in C++

关于c++ - 无法在 SQLite 中设置 user_version,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23386180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com