HarmonyOS 鸿蒙Next 使用openharmony-sig社区的flutter_sqflite保存时间戳毫秒Int类型到数据中,查询的时候报错
HarmonyOS 鸿蒙Next 使用openharmony-sig社区的flutter_sqflite保存时间戳毫秒Int类型到数据中,查询的时候报错 使用https://gitee.com/openharmony-sig/flutter_sqflite插件,保存int类型当前时间戳毫秒(DateTime.now().millisecondsSinceEpoch)到数据库中,查询的时候报错 Unhandled Exception: type ‘_UnmodifiableUint8ArrayView’ is not a subtype of type ‘int’
- 使用DateTime.now().millisecondsSinceEpoch,创建一个int类型的时间戳,使用db.insert保存到数据库
- 使用db.query查询这个数据表
更多关于HarmonyOS 鸿蒙Next 使用openharmony-sig社区的flutter_sqflite保存时间戳毫秒Int类型到数据中,查询的时候报错的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
像时间戳这种比较大的数据类型字段要用UNLIMITED INT,不能用INTEGER ,例如:CREATE TABLE $_tableName(id INTEGER PRIMARY KEY, name TEXT, age INTEGER, create_t UNLIMITED INT)
使用 UNLIMITED INT 而不是INTEGER NOT NULL,flutter更新到最新的dev分支,排序问题即可修复
更多关于HarmonyOS 鸿蒙Next 使用openharmony-sig社区的flutter_sqflite保存时间戳毫秒Int类型到数据中,查询的时候报错的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在HarmonyOS鸿蒙Next系统中,使用openharmony-sig社区的flutter_sqflite
插件保存时间戳毫秒(Int类型)到数据库中,并在查询时报错的问题,可能源于数据类型的处理不匹配。
flutter_sqflite
在SQLite数据库中默认整数类型可能会以32位整数存储,而时间戳的毫秒表示(尤其是较远的未来或过去的日期)可能会超出32位整数的范围,导致溢出错误。尽管SQLite支持64位整数(通过INTEGER
类型,当使用64位SQLite库时),但不同的封装或平台实现可能对此有不同的处理。
解决此问题的方法通常涉及确保数据库和flutter_sqflite
的使用方式支持64位整数:
- 检查SQLite版本:确保你的SQLite库是64位的。
- 数据类型转换:在保存前,将时间戳转换为字符串类型,虽然这会增加存储开销,但可以避免整数溢出的问题。
- 更新
flutter_sqflite
插件:查看是否有更新版本的插件解决了此问题。 - 使用原生代码扩展:如果必要,可以通过原生代码(如Dart与原生方法的互操作)来直接处理64位整数。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html