最近在使用X5 时遇到了一些问题:
对于X5 底层处理blob 字段的处理方式是:
如果是新增一条记录则
先执行insert : 此时insert 一条记录不处理blob 字段 此时会将blob 字段对应的值存储在
cacheMap = TableHelper.getBlobColumnCacheMap(table, r) 中
然后执行update : 执行update 时才处理blob字段 找到对应blob字段,然后从
cacheMap = TableHelper.getBlobColumnCacheMap(table, r) 中获取blob对应字段的值赋值给对应的bolb 字段进行更新
扫描二维码关注公众号,回复:
370232 查看本文章
那么在使用X5时:如果更新bolb 字段则需要加上
rIdea.setState(ModifyState.EDIT);
或者
要么先调用 row.setValue('abc',row.getValue('abc'))
把row的state变为 ModifyState.EDIT
总之:
appendRow 不需要设置 ModifyState.NEW
deleteRow 不需要设置 ModifyState.DELETE
但是update blob字段时需要
ModifyState.EDIT