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

QQ登录

只需一步,快速开始

查看: 4077|回复: 1

[结贴] 关于 justep.Request.beginBatch();

[复制链接]

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
发表于 2017-7-28 14:45:07 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号:
数据库: MS SQLServer 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: IE10
acction  代码  执行一次向一个数据表中写入一条记录,记录三列分别是传过来的参数ry,kc,chengjpublic static Table cclr(String ry,String kc,Float chengj)  {
                 System.out.print("0");
                java.sql.Connection conn;
                try {                        
            conn = com.justep.model.ModelUtils.getConnection("/caiwu/caiwu/data");
            java.sql.CallableStatement proc = conn.prepareCall("{ call _transAction(?,?,?) }");
            proc.setString(1,ry);
            proc.setString(2,kc);
            proc.setFloat(3,chengj);
            ResultSet rt = proc.executeQuery();//这个是返回查询的结果集,需要做其他操作(update的操作)百度一下
           Table table =  com.justep.system.util.BizUtils.resultSet2Table(rt,"/caiwu/caiwu/data");
             return table;
    } catch (NamingException e) {
            // TODO Auto-generated catch block                                
            e.printStackTrace();
            System.out.print("1");
            return null;
    } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.print("2/n");
            System.out.print(ry);
            //throw SQLException(e) ;
            return null;
    }

    }


ui界面按钮的代码:代码中使用了批请求的处理方式,批请求中连续调用了两次改acction,由于sql表中,使用参数ry,kc对应的两列作为key,如果不使用批请求,执行代码的效果是写入一行记录。
如果使用了批请求,我认为,由于第二次执行acction时候,key重复,造成了acction没有执行成功,从而会造成这个按钮没有执行成功,两次记录都不应该写入表。
现在的问题是,由于acction中,当sql执行出现问题时,return  null,ui上的js不认为是执行异常,仍然会写入一天记录。也就是说批执行没有被取消。
请教这种情况怎么办,想让他一条记录也写不进去。

justep.Request.beginBatch();
try
{
var actionParam = new justep.Request.ActionParam();   
    actionParam.setString('ry','张三');
    actionParam.setString('kc','数学');
    actionParam.setFloat('chengj','20');
    justep.Request
                        .sendBizRequest2({
                                dataType : "json",
                                action : "cclr",        //修改成查询记录数的acction,该acction在press中引用
                                parameters : actionParam,
                                directExecute:true,

                                "callback": function(callbackData)  {
                                       callbackData.ignoreError = false;
                                       if (callbackData.state) {}
                                       else {}

                                           }
});        

var actionParam = new justep.Request.ActionParam();   
    actionParam.setString('ry','张三');
    actionParam.setString('kc','数学');
    actionParam.setFloat('chengj','20');

    justep.Request
                        .sendBizRequest2({
                                dataType : "json",
                               action : "cclr",        //修改成查询记录数的acction,该acction在press中引用
                               parameters : actionParam,
                               //directExecute:false,
                               "callback": function(callbackData)  {
                                callbackData.ignoreError = false;
                                       if (callbackData.state) {}
                                       else {}

                                         }
});        
justep.Request.endBatch();
}
catch (e) {
        justep.Request.cancelBatch();
        throw e
        alert('cuowuzong');
        }
alert('jieshu');




91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-7-28 15:25:05 | 显示全部楼层
用getConnectionInTransaction去获取数据库链接,不要用getConnection
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-21 15:35 , Processed in 0.059368 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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