HarmonyOS鸿蒙Next中sqflite问题

HarmonyOS鸿蒙Next中sqflite问题

flutter开发。  
同一套代码,在安卓、ios上,执行数据库的插入更新都没问题。  

在鸿蒙上碰到:  
1. 插入数据库,返回的id,始终为1,我们已经设置了自增:(id_ INTEGER PRIMARY KEY AUTOINCREMENT)  
2. 更新数据库的操作,执行 db.update(这里面是参数) 的操作,只要执行这个方法,就会抛出异常。

DatabaseException(no such table:OR)  
#0 wrapDatabaseException (package:sqflite/src/exception_impl.dart:11:7)  
<asynchronous suspension>  
#1 SqfliteDatabaseMixinExt._txnRawUpdateOrDelete.<anonymous closure> (package:sqflite_common/src/database_mixin.dart:315:22)  
<asynchronous suspension>  
#2 BasicLock.synchronized (package:synchronized/src/basic_lock.dart:33:16)  
<asynchronous suspension>  
#3 SqfliteDatabaseMixin.txnSynchronized (package:sqflite_common/src/database_mixin.dart:490:14)  
<asynchronous suspension>  
#4 HabitDBHelper.updateExistHabit (package:mhabit/persistent/local/handler/habit.dart:187:19)  
<asynchronous suspension>  
#5 HabitFormViewModel._saveExistHabit (package:mhabit/provider/habit_form.dart:306:19)  
<asynchronous suspension>  
#6 HabitFormViewModel.saveHabit (package:mhabit/provider/habit_form.dart:247:16)  
<asynchronous suspension>  
#7 _HabitEditView._onSaveButtonPressed (package:mhabit/view/page_habit_edit.dart:224:33)  
<asynchronous suspension>

更多关于HarmonyOS鸿蒙Next中sqflite问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

sqlite 自增auto没用吧?,只要设置是primarykey + inter,他就会自增,至少我实践下来是这样。

第二个问题不是说没这么个数据库表,你表创建了吗?初始化只是创建库,表要通过语句创建

更多关于HarmonyOS鸿蒙Next中sqflite问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中使用sqflite时,可能会遇到以下问题:

  1. 依赖冲突:确保sqflite版本与Flutter SDK兼容,避免与其他插件冲突。
  2. 数据库路径:鸿蒙系统对文件路径有严格限制,建议使用getApplicationDocumentsDirectory获取合法路径。
  3. 权限问题:确保应用已获取存储权限,避免数据库无法创建或访问。
  4. 异步操作sqflite操作是异步的,需正确处理异步回调,避免UI线程阻塞。
  5. 调试工具:使用flutter pub run sqflite:devtools进行数据库调试,排查问题。

建议参考官方文档和社区资源,确保正确配置和使用sqflite

回到顶部