起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2923|回复: 1

[处理中6] 主键为非GUID时,修改数据,再删除数据,会报错。

[复制链接]

67

主题

223

帖子

1083

积分

金牌会员

Rank: 6Rank: 6

积分
1083
QQ
发表于 2015-4-15 20:12:21 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
主键用Integer,并用 nextSeq('XXXX') 做为主键默认值时,
修改一条数据,保存,再修改或者删除这条记录时,就会爆如下错误:

编码: JUSTEP150186; 提示: 更新记录OSAP, OSAP, key="30"出错, 不存在符合条件的数据, UPDATE OSAP OSAP SET OSAP.CompanyDB = :CompanyDB_new, OSAP.version = :version + 1  WHERE OSAP= :OSAP_old AND OSAP.version = :version_old; 可能的原因: 数据被其他用户修改了; 数据被其他用户删除了
编码: JUSTEP150180; 提示: 删除记录OSAP, OSAP, key="30"出错, 不存在符合条件的数据, DELETE FROM OSAP OSAP WHERE OSAP= :OSAP AND OSAP.version = :version; 可能的原因: 数据被其他用户修改了; 数据被其他用户删除了

这种情况下,保存数据后,数据库中version已经被更新,而用来校验用的version 没有更新。

这个应该是缺陷,有么有办法修正啊。
我现在临时解决办法是:
SaveCommit 事件中去刷新一下数据
mainActivity.dataMainSaveCommit = function(event){
justep.xbl("dataMain").refreshData();
};

我测试过,用GUID做主键不会出现这个问题。

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2015-4-16 15:02:34 | 显示全部楼层
你好楼主,这个问题需要我在本地环境进行问题重现,所以会花费较长时间,请你耐心等待,我完成后会第一时间反馈结果,谢谢!
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-28 23:04 , Processed in 0.110985 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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