sqlite3_exec没有立即提交

时间:2016-03-08 21:25:55

标签: c++ sqlite

在嵌入式系统上使用sqlite3_exec。我要求尽快完成写入,因此如果断电,则保存数据。但是我发现在完全写入数据之前机器必须打开~10秒!是否有设置尝试加快速度?

使用日记帐模式DELETE(" PRAGMA journal_mode = DELETE;)和同步模式FULL(" PRAGMA synchronous = FULL;")。

我已尝试发送" BEGIN;"和" COMMIT;"分别在UPDATE之前和之后。没有变化。

std::ostringstream oss;
std::ostringstream oss_err;
oss << "UPDATE " << sTableName << " SET " << pon_rstc_db[LookupParamIndex(param)].column_name << "='" << sValue << "';";

if (!isDatabaseOpen())
    OpenDatabase(sDatabaseName);

if (isDatabaseOpen())
{
    char* db_err = 0;
    int rc;
    rc = sqlite3_exec(myDatabase, oss.str().c_str(), NULL, 0, &db_err);
    if (rc == SQLITE_OK)
    {
        bResponse = true;
    }
    else
    {
        oss_err << db_err;
        oss_err << "Update failed for " << LookUpColumnName(param) << ". Data not saved.";
        DisplayError(oss_err.str());
        bResponse = false;
    }
    sqlite3_free(db_err);
    db_err = 0;
}
else
{
    DisplayError("executing statement while database closed");
}

0 个答案:

没有答案