You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLCipher 4.5.1加密数据库条件查询无结果异常求助

问题:SQLCipher 4.5.1条件查询异常

我使用SQLCipher 4.5.1版本的加密数据库,遇到以下查询异常问题:

  • 执行select * from xxtable;可正常查询到全部80条数据,该表包含一个名为[10001]的整数类型时间戳字段
  • 执行select * from xxxtable where [10001] >= 1693447225仅返回时间戳等于1693447225的数据,而非所有大于等于该值的记录
  • 执行select * from xxxtable where [10001] == 1693447225可正常返回对应数据
  • 执行SELECT * FROM xxxtable WHERE [10001] between 1693447225 and 1693453232无数据返回,但我确认该时间区间内存在4条数据

所有操作调用sqlite3_exec的返回值均为0,无任何报错信息。但通过sqlite3_backup_init备份数据库后,上述异常查询语句都能正常获取目标数据,不过实际环境中无法每次查询都执行备份操作。

相关代码如下:

sqlite3* db = nullptr;
int iret = sqlite3_open(dbpath, &db);
if (iret != 0)
{
    return iret;
}

iret = sqlite3_key(db, g_key, 16);
if (iret != 0)
{
    return iret;
}
  
char* perr = nullptr;
iret = sqlite3_exec(db, ssql, callback, NULL, &perr);
if (iret != 0)
{
    printf("%s \n", perr);
    free(perr);
    return iret;
}

sqlite3_close(db); 
return iret;

内容的提问来源于stack exchange,提问作者wyllle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:52:22