apicloud apicloud

注册
查看: 389|回复: 3

[BUG] 在IOS下使用SQLite,写入的数据和读取的数据不一致 已解决

回帖奖励 20 云币
回复本帖可获得 5 云币奖励! 每人限 1 次

主题:
30
帖子:
108
云币:
82

[BUG] 在IOS下使用SQLite,写入的数据和读取的数据不一致 已解决

389 3 | 发表于 2021-5-16 18:44:46 |阅读模式 | |
本帖最后由 Heart2world123 于 2021-5-16 18:46 编辑

在IOS下使用SQLite,写入的数据和读取的数据不一致,但是Android则运行正常,经过测试发现,不管怎么样,iOS存入数据的时候或者读取数据的时候总会跟原来的值有偏差。导致我功能使用异常。

这是连接数据库的代码

  1. var ret = db.openDatabaseSync({
  2.         name: 'SQLite',
  3.         path:'fs://SQLite.db'
  4.     });
复制代码



这是创建数据库的代码
  1. var ret = db.executeSqlSync({
  2.         name: 'SQLite',
  3.         sql: 'CREATE TABLE chat_record(`id`  INTEGER PRIMARY KEY, conversation_id  TEXT, `from` TEXT, `to` TEXT, `is_recall` int(1) default(1),`is_delete` int(1) default(1),is_readat INT(1) default(1),is_read INT(1) default(1),ext varchar(5000),msg text(5000),timestamp text(13))'
  4.     });
复制代码


这是插入数据库的代码
  1. var ret = db.executeSqlSync({
  2.         name: 'SQLite',
  3.         sql: 'INSERT INTO chat_record VALUES ('+ messageId + ','+ conversation_id + ','+ from + ','+ to + ',1,1,1,0,'+ "'" + extstr + "'"+ ',' + "'"+msg + "'"+','+"'"+ timestamp +"'"+')'
  4.     });
复制代码



问题主要是出在 messageId  字段上,messageId 字段写入和读取的数据不一致,比如我插入:874440730808944792,下次读取就是:874440525762005144。

很疑惑啊很疑惑,目前使用的iOS版本是:14.5.1

主题:
362
帖子:
54665
云币:
22872
发表于 2021-5-17 15:09:39 |

回帖奖励 +5 云币

换个非主键字段测试看看
【奖金150万】“用友·华为云杯”第三届开发者大赛报名开启,APICloud开发者直接报名参加:点击报名

主题:
30
帖子:
108
云币:
82
 楼主| 发表于 2021-5-17 15:44:52 |
技术支持-F 发表于 2021-5-17 15:09
换个非主键字段测试看看

已经自己排查解决,原因是 数据库字段类型问题,大概是数据太长,超出类型范围,换成了TEXT类型就好了

主题:
362
帖子:
54665
云币:
22872
发表于 2021-5-17 15:48:22 |
ok
【奖金150万】“用友·华为云杯”第三届开发者大赛报名开启,APICloud开发者直接报名参加:点击报名
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表