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

QQ登录

只需一步,快速开始

查看: 7837|回复: 12

[处理中3] 关于bizData的updateMode到底是个什么用法?

[复制链接]

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
发表于 2018-3-5 17:25:03 | 显示全部楼层 |阅读模式
bizData的updateMode为whereAll与whereVersion有什么不同假如bizData里面有3条数据,本次操作我修改了第一条,但是第二条数据被其他人修改了,保存会报version新旧不匹配的错误吗?
假如bizData里面有3条数据,本次操作我修改了第一条,但是第一条同时被其他人修改且保存过了,保存会报version新旧不匹配的错误吗?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36193
发表于 2018-3-5 17:30:08 | 显示全部楼层
1.3条数据本次操作我修改了第一条,但是第二条数据被其他人修改了,保存不会报version新旧不匹配的错误
2.3条数据,本次操作我修改了第一条,但是第一条同时被其他人修改且保存过了,保存会报version新旧不匹配的错误

http://docs.wex5.com/bex5-server-question-list-10040/中有whereAll和whereVersion的说明
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2018-3-5 18:38:51 | 显示全部楼层
我的目的是要批量修改khData 里面的某几个字段,前一个页面会将需要更新的Rows传递过来,保存的时候获取哪些是需要更新的,然后在修改对应的字段,使用下面的方法死活不行,有什么方法优化处理吗?
        Model.prototype.saveBtnClick = function(event){
                console.log("保存");
                var fpData = this.comp("fpData");
                var khRows = this.khRows;
                var khData = this.comp("khData");
                var khgzData = this.comp("khgzData");
                var currentPersonCode = this.getContext().getCurrentPersonCode();
                var fKHBMS = [];
                for(var i=0;i<khRows.length;i++){
                        fKHBMS.push(khRows.val("fKHBM"));        //记录客户编码,后台发送邮件到对应的客户经理
                        if(khRows.val("isPuplic")==1){
                                khData.setValueByID("isPuplic",0,khRows.val("PR_KH"));
                                khData.setValueByID("isToday",1,khRows.val("PR_KH"));
                                khData.setValueByID("isWeek",1,khRows.val("PR_KH"));
                                khData.setValueByID("fUpdatePerson",this.sCode,khRows.val("PR_KH"));
                                khData.setValueByID("fUpdateTime",new Date(),khRows.val("PR_KH"));
                khData.saveData();
                        }
                        var khgzID = khData.getValueByID("PR_KHGZ", khRows.val("PR_KH"));
                        khgzData.setValueByID("fORGID1",fpData.getValue("fORGID1"), khgzID);
                        khgzData.setValueByID("fORGName1",fpData.getValue("fORGName1"), khgzID);
                        khgzData.setValueByID("fORGID2",fpData.getValue("fORGID2"), khgzID);
                        khgzData.setValueByID("fORGName2",fpData.getValue("fORGName2"), khgzID);
                        khgzData.setValueByID("fKHJLBM",fpData.getValue("fKHJLBM"), khgzID);
                        khgzData.setValueByID("fKHJLName",fpData.getValue("fKHJLName"), khgzID);
                        khgzData.setValueByID("fUpdatePerson",currentPersonCode,khgzID);
                        khgzData.setValueByID("fUpdateTime",new Date(), khgzID);
                khgzData.saveData();
                }
                currentService.khChangeSendEmailAction(this,fKHBMS);
                this.comp("windowReceiver").windowEnsure();
        };
这个代码一直报下面的错误:
保存数据失败! ,
更新记录PR_KH, PR_KH, key="70ff169ce13111e78a70e229251eec3a"出错, 不存在符合条件的数据, UPDATE PR_KH PR_KH SET PR_KH.fGJRQ = :fGJRQ_new, PR_KH.fQDJE = :fQDJE_new, PR_KH.fUpdatePerson = :fUpdatePerson_new, PR_KH.fUpdateTime = :fUpdateTime_new, PR_KH.version = :version + 1 WHERE PR_KH= :PR_KH_old AND PR_KH.version = :version_old
编码:JUSTEP150186
原因:JUSTEP150186

回复 支持 反对

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2018-3-6 08:27:39 | 显示全部楼层
1.确认概念中是否有version关系,没有需要添加上,概念中有数据库的表中也需要添加
这个是默认就会有的,检查没有发现问题
2.确认queryAction中是否选择了关系没有选择version
这句话不知道什么意思,queryAction没有要选择version的地方,我在做保存操作,为什么要去检查queryAction???
3.确认data的columns是否选择了关系没有选择version
回复 支持 反对

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2018-3-6 08:30:15 | 显示全部楼层
3.确认data的columns是否选择了关系没有选择version
我选择了所有的关系依然报错,到底是什么原因?
回复 支持 反对

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2018-3-6 08:32:11 | 显示全部楼层
开发平台上面只有我一个用户,都会报这个错误,什么原因?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36193
发表于 2018-3-6 09:34:28 | 显示全部楼层
1.批量操作的推荐到把数据传到后端,在action中通过ksql或者sql操作数据库中的数据,前端操作数据量大会影响性能
2.报错的语句不算version,修改的是4个字段的值,不是你上面setValue修改的字段的格式啊,确认是上面批量操作报错的?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2018-3-6 16:08:59 | 显示全部楼层
附件里面第161行报错,还是报版本错误,对于同时修改多条数据可以使用action在后台保存
现在这个怎么搞?只修改一条也报错
我需要将所有的参数传递到后台在保存吗?

khgjDialog.rar

3.86 KB, 阅读权限: 255, 下载次数: 1

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36193
发表于 2018-3-6 16:24:29 | 显示全部楼层
1.khData.setValue("fUpdateTime",new Date());赋值不正确
参考http://docs.wex5.com/datetime/
2.在saveData前,用data的getValue获取version的值看看是多少
到数据库中看看这条记录中version字段的值是多少
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2018-3-6 16:59:17 | 显示全部楼层
报版本错误,version值不一致,没法更新,知道报错原因,但是没有解决方法,为什么版本会不一致呢?????????????

保存数据失败! ,
更新记录PR_KH, PR_KH, key="16e234a1e0a811e7beb82a6581161221"出错, 不存在符合条件的数据, UPDATE PR_KH PR_KH SET PR_KH.fGJRQ = :fGJRQ_new, PR_KH.fQDJE = :fQDJE_new, PR_KH.version = :version + 1 WHERE PR_KH= R_KH_old AND PR_KH.version = :version_old
编码:JUSTEP150186
原因:JUSTEP150186
报版本错误,赋值不正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-13 11:11 , Processed in 0.082856 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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