|
版本: |
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');
|
|