我正在嘗試使用SQLite數據庫的user_version功能。我無法真正設置user_version,我不知道爲什麼。我已經嘗試過執行查詢來更新user_version的各種方法,並且已經在網上進行了大量搜索,現在處於完全失敗狀態。無法在SQLite中設置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'(https://www.sqlite.org/c3ref/exec.html)函數將不會返回查詢的結果,你必須使用一個回調以獲取返回的結果數據。 –
你想設置'user_version'還是要查詢它? – Massa
兩者。在這種情況下,我想要做的就是設置它,但是我現在也在查詢它,看看我是否成功設置了它。我最終需要在別處查詢它,以檢查數據庫的更新是否可用。 – Mark