江湖的笔记

积累比获取更重要

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  6 随笔 :: 1 文章 :: 0 评论 :: 0 Trackbacks

自己用到的一个方法,贴上来便于记忆

 1    protected  void execBatch(String procDate) throws HsException{
 2        CallableStatement cstmt=null;
 3        String onlineDay=getSysParam("OCRM_ONLINE_DATE"); //系统上线日期
 4        if(procDate.compareTo(onlineDay)<0){
 5            throw new HsException("00001","批处理日期应该大于系统上线日期!");
 6        }

 7        try{
 8            String procName=getProcName();
 9            if(procDate.compareTo(getSysParam("OCRM_BATCH_DATE"))<=0) procName=procName.trim()+"_REDO";  //重跑批处理名称
10            cstmt=dataSource.getConnection().prepareCall("{ call "+procName+" (?,?,?) }");
11            cstmt.registerOutParameter(2, java.sql.Types.INTEGER);
12            cstmt.registerOutParameter(3, java.sql.Types.VARCHAR);
13            cstmt.setString(1,HsDate.dateTo8(procDate));
14            Progress p=Progress.newInstance();
15            p.start();
16            cstmt.execute();
17            p.setOff(true);  //退出
18            int ret=cstmt.getInt(2);
19            String reinfo=cstmt.getString(3);
20            if(ret!=0){
21                throw new HsException("00001","批处理执行失败!,"+reinfo);
22            }

23//            cstmt.close();
24        }
catch(Exception e){
25            throw new HsException(HsErrorMsg.ERR_DB_ERROR,e.toString());
26        }

27    }
    
这个函数一直到批处理结束后才会返回,因而执行时要放在线程里面。
posted on 2009-01-10 01:31 江湖 阅读(336) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: