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

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

[Iscript] 调用存储过程并返回值【函数-callMax(p_id)/调用存储过程】

[复制链接]
shary 发表于 2012-6-15 10:09:38 | 显示全部楼层 |阅读模式
本帖最后由 spiral 于 2013-4-28 09:55 编辑

Q:怎么调用存储过程并返回值
A:具体参考如下例子:

  1. /**
  2. *函数库名称 call_Product
  3. *getConnection(application)//获取数据库连接的函数
  4. *callMax(p_id) //调用存储过程的函数
  5. */
  6. function getConnection(application){
  7. var approcess= createProcess("cn.myapps.core.deploy.application.ejb.ApplicationProcess");//实例化应用业务处理类
  8. var dtprocess= new Packages.cn.myapps.core.dynaform.dts.datasource.ejb.DataSourceProcessBean();//实例化数据源业务处理类
  9. var appvo = approcess.doView(application);//获取应用VO对象
  10. var sourceid =appvo.getDatasourceid();//获取应用数据源ID
  11. var dtvo=dtprocess.doView(sourceid);
  12.         if (dtvo != null) {
  13.                 var username = dtvo.getUsername();
  14.                 var password = dtvo.getPassword();
  15.                 var driver = dtvo.getDriverClass();
  16.                 var url = dtvo.getUrl();
  17.                 var poolsize = dtvo.getPoolsize();
  18.                 poolsize = poolsize!=null && poolsize.length()>0? dtvo.getPoolsize() : "10";
  19.                 var timeout = dtvo.getTimeout();
  20.                 timeout = timeout!=null && timeout.length()>0? dtvo.getTimeout() : "5000";
  21.                 var dataSource = new Packages.cn.myapps.base.dao.PersistenceUtils.getDBCPDataSource(username, password, driver, url, poolsize,timeout);
  22.                 return dataSource.getConnection();
  23.                 }
  24.         return null;
  25. }


  26. /**
  27.   * 调用存储过程
  28.   */
  29. function callMax(p_id){
  30.   //获取连接
  31.   var max = "";
  32.   var conn = getConnection(getApplication());
  33.   var cs = null;
  34.   try {
  35.    cs = conn.prepareCall("{call p_test(?,?)}");
  36.    cs.setString(1,p_id);
  37.    //设置第一个输入参数的值为110
  38.    cs.registerOutParameter(2, Packages.java.sql.Types.CHAR);
  39.    cs.execute();
  40.    max = cs.getString(2);
  41.    $PRINTER.println("***************************max"+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. }
复制代码
调用语法:
  1. #include "call_Product";
  2. callMax(p_id);  //调用存储过程的函数
复制代码

本版积分规则

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

GMT+8, 2026-8-12 15:24

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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