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

QQ登录

只需一步,快速开始

查看: 1816|回复: 5

[结贴] saveaction执行后事件中调用存储过程,错误不提示,不回滚

[复制链接]

17

主题

77

帖子

160

积分

初级会员

Rank: 2

积分
160
QQ
发表于 2015-1-23 22:34:44 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
在标准saveaction的执行后事件中执行存储过程,如果存储过程执行失败,如果让前台提示sql错误,并回滚本次保存任务?
代码如下:
public class makeorder{
                public static void makeorderAfterSaveorderAction() {
                java.sql.Connection conn;
                try{
                conn = ModelUtils.getConnectionInTransaction("/WISE/ERP/data");
        Table tab = (Table) ContextHelper.getActionContext().getParameter("table");
        Iterator<Row> ros = tab.iterator(com.justep.system.data.ModifyState.NEW);
        String id = null;
        while (ros.hasNext()) {
                Row row = ros.next();
                 id = row.getString("fMID");
              }
                java.sql.CallableStatement proc = conn.prepareCall("{ call order_prdt(?) }");
                proc.setString(1,id);
                proc.execute();
         } catch (NamingException e) {                             
                 throw new RuntimeException(e);
          } catch (SQLException e) {
                 throw new RuntimeException(e);
          }
        }
}

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2015-1-26 09:22:03 | 显示全部楼层
这个事件中如果执行失败本来就可以回滚的

错误信息可以在抛出需要的错误信息
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

17

主题

77

帖子

160

积分

初级会员

Rank: 2

积分
160
QQ
 楼主| 发表于 2015-1-27 11:45:49 | 显示全部楼层
jishuang 发表于 2015-1-26 09:22
这个事件中如果执行失败本来就可以回滚的

错误信息可以在抛出需要的错误信息 ...

实际使用不行的,存储过程执行过程中有错,但是x5是保存成功的,而且不提示错误
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2015-1-27 13:32:13 | 显示全部楼层
确认存储过程调用出错了?本地测试没问题,就是直接在public static void makeorderAfterSaveorderAction中用throw new RuntimeException("测试");抛出异常,事务也会回滚
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

17

主题

77

帖子

160

积分

初级会员

Rank: 2

积分
160
QQ
 楼主| 发表于 2015-1-27 21:51:21 | 显示全部楼层
jishuang 发表于 2015-1-27 13:32
确认存储过程调用出错了?本地测试没问题,就是直接在public static void makeorderAfterSaveorderAction中 ...

那真不知道了,我故意让存储过程出错,前台还是成功的,没办法直接重写action了
回复 支持 反对

使用道具 举报

17

主题

77

帖子

160

积分

初级会员

Rank: 2

积分
160
QQ
 楼主| 发表于 2015-1-27 21:51:59 | 显示全部楼层
用重写action解决了,结贴吧,这个问题我再慢慢测试
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 15:57 , Processed in 0.074827 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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