天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 2753|回复: 0

[Iscript] 存储过程怎么使用【函数-调用数据库存储过程】

[复制链接]
irene 发表于 2011-11-29 18:49:04 | 显示全部楼层 |阅读模式
本帖最后由 purple 于 2012-12-31 14:05 编辑

Q;存储过程怎么使用,能不能举例说明
A: 请参考下列实现代码:
         //获取数据库连接
  1. function getConnection(application){
  2. var approcess= createProcess("cn.myapps.core.deploy.application.ejb.ApplicationProcess");//实例化应用业务处理类
  3. var dtprocess= new Packages.cn.myapps.core.dynaform.dts.datasource.ejb.DataSourceProcessBean();//实例化数据源业务处理类
  4. var appvo = approcess.doView(application);//获取应用VO对象
  5. var sourceid =appvo.getDatasourceid();//获取应用数据源ID
  6. var dtvo=dtprocess.doView(sourceid);
  7.         if (dtvo != null) {
  8.                 var username = dtvo.getUsername();
  9.                 var password = dtvo.getPassword();
  10.                 var driver = dtvo.getDriverClass();
  11.                 var url = dtvo.getUrl();
  12.                 var poolsize = dtvo.getPoolsize();
  13.                 poolsize = poolsize!=null && poolsize.length()>0? dtvo.getPoolsize() : "10";
  14.                 var timeout = dtvo.getTimeout();
  15.                 timeout = timeout!=null && timeout.length()>0? dtvo.getTimeout() : "5000";
  16.                 var dataSource = new Packages.cn.myapps.base.dao.PersistenceUtils.getDBCPDataSource(username, password, driver, url, poolsize,timeout);
  17.                 return dataSource.getConnection();
  18.                 }
  19.         return null;
  20. }
  21. /**
  22.    * 调用存储过程
  23.    */
  24. function callMax(formname,fieldname){
  25.    //获取连接
  26.    var max=0;
  27.    var conn = getConnection(getApplication());
  28.    var cs = null;
  29.    try {
  30.     var statement = conn.createStatement();
  31.     var proced = "DROP PROCEDURE IF EXISTS sp1_"+formname+"_"+fieldname;
  32.     statement.executeUpdate(proced);
  33.     proced=" CREATE procedure sp1_"+formname+"_"+fieldname+"(out p int)";
  34.     proced+=" begin select max(item_"+fieldname+") into p from tlk_"+formname+";  end";
  35.     statement.executeUpdate(proced);

  36.     cs = conn.prepareCall("{call sp1_"+formname+"_"+fieldname+"(?)}");
  37.     //设置第一个输入参数的值为110
  38.     cs.registerOutParameter(1, Packages.java.sql.Types.INTEGER);
  39.     cs.execute();
  40.     max= cs.getInt(1);
  41.    $PRINTER.println("sssssssssssssssss" + max);
  42.    } catch (e) {
  43.    } finally {
  44.     try {
  45.      if(cs != null){
  46.       cs.close();
  47.      }
  48.      if(conn != null){
  49.       conn.close();
  50.      }
  51.     } catch (ex) {
  52.     }
  53.    }
  54.    return max;
  55. }
复制代码
摘自忧郁的馒的帖子                原帖子链接:
http://www.teemlink.com/bbs/view ... 26amp%3Btypeid%3D45

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 07:42

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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