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
相关产品推荐
相关产品推荐

