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
时,可能会遇到以下问题:
- 依赖冲突:确保
sqflite
版本与Flutter SDK兼容,避免与其他插件冲突。 - 数据库路径:鸿蒙系统对文件路径有严格限制,建议使用
getApplicationDocumentsDirectory
获取合法路径。 - 权限问题:确保应用已获取存储权限,避免数据库无法创建或访问。
- 异步操作:
sqflite
操作是异步的,需正确处理异步回调,避免UI线程阻塞。 - 调试工具:使用
flutter pub run sqflite:devtools
进行数据库调试,排查问题。
建议参考官方文档和社区资源,确保正确配置和使用sqflite
。