HarmonyOS鸿蒙Next中关系型数据库插入成功却查询不到值

HarmonyOS鸿蒙Next中关系型数据库插入成功却查询不到值 应用刚启动的时候,插入数据没问题,过个大概5.6分钟,再插入,回调显示插入成功返回id,但实际上没插入,查询没有新增数据,所有插入更新删除都不行。

重启应用就没问题了,然后过几分钟再重复刚才的情况。

看了api上,说的是不需要事物提交。

请问这是什么问题?怎么解决呢

11 回复
官方回复API9的rdb不稳定,后续版本已优化,

更多关于HarmonyOS鸿蒙Next中关系型数据库插入成功却查询不到值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


API 9 rdb 目前使用正常,要看你的代码,有可能是异步调用当成同步代码使用了才导致查询不到。

具体我不知道什么原因,可能跟环境,手机型号什么的有一定关系,我也是api9,就是同样的代码,杀掉软件再启动就一定是好的,同步和异步的问题不应该能影响到成功,页面级的调用我全部都加了await,关键是它异步或者同步都会返回成功的结果,比如说插入的id,更新的条数,这个结果是可以打印出来的,但是并不会出来效果,然后紧接着再重复一次刚才的操作,它会返回同样的结果,插入过程是没问题的,因为返回了结果,但是下一次去的时候它又会默认没有之前的操作返回同样的结果。

如果没有comit操作的的话,那可能就是底层自带的comit出了问题,但是api中是说不需要comit的,,

数据库文件取出来看看?

没用,因为前面会返回一个插入成功的id值,然后同步去查就没有,等重启应用再插一次返回的id跟上次的一样,

去查没有那不就是没插成功?插没插成功把数据库文件从机器里取出来看看是最可以确认成功的方式,

期待HarmonyOS能在未来推出更多针对特定场景的优化功能。

大哥,现在是已经确定没插入成功了呀。想请教的是 为什么会出现这种情况,

大哥,现在是已经确定没插入成功了呀。想请教的是 为什么会出现这种情况,

在HarmonyOS鸿蒙Next中,关系型数据库插入成功却查询不到值,可能的原因包括:

  • 事务未提交:插入操作可能在一个事务中,但事务未提交,导致数据未持久化到数据库。
  • 查询条件错误:查询时使用的条件与插入的数据不匹配,导致查询不到结果。
  • 数据库连接问题:插入和查询可能使用了不同的数据库连接,导致查询时无法看到插入的数据。
  • 缓存问题:数据库或应用层可能存在缓存机制,导致查询时未从数据库中获取最新数据。
  • 权限问题:查询操作可能没有足够的权限访问插入的数据。
  • 数据库表结构问题:表结构可能未正确配置,导致数据插入后无法被查询到。

检查这些方面可以帮助定位问题。

在HarmonyOS鸿蒙Next中,如果关系型数据库插入成功但查询不到值,可能原因包括:

  1. 事务未提交,确保插入操作后调用commit()
  2. 查询条件不匹配,检查查询语句是否正确;
  3. 数据库连接问题,确认连接正常;
  4. 数据表结构不一致,确保插入和查询的表结构一致。

建议逐步排查这些可能的问题。

回到顶部