本帖最后由 purple 于 2012-12-31 14:05 编辑
Q;存储过程怎么使用,能不能举例说明
A: 请参考下列实现代码:
//获取数据库连接- function getConnection(application){
- var approcess= createProcess("cn.myapps.core.deploy.application.ejb.ApplicationProcess");//实例化应用业务处理类
- var dtprocess= new Packages.cn.myapps.core.dynaform.dts.datasource.ejb.DataSourceProcessBean();//实例化数据源业务处理类
- var appvo = approcess.doView(application);//获取应用VO对象
- var sourceid =appvo.getDatasourceid();//获取应用数据源ID
- var dtvo=dtprocess.doView(sourceid);
- if (dtvo != null) {
- var username = dtvo.getUsername();
- var password = dtvo.getPassword();
- var driver = dtvo.getDriverClass();
- var url = dtvo.getUrl();
- var poolsize = dtvo.getPoolsize();
- poolsize = poolsize!=null && poolsize.length()>0? dtvo.getPoolsize() : "10";
- var timeout = dtvo.getTimeout();
- timeout = timeout!=null && timeout.length()>0? dtvo.getTimeout() : "5000";
- var dataSource = new Packages.cn.myapps.base.dao.PersistenceUtils.getDBCPDataSource(username, password, driver, url, poolsize,timeout);
- return dataSource.getConnection();
- }
- return null;
- }
- /**
- * 调用存储过程
- */
- function callMax(formname,fieldname){
- //获取连接
- var max=0;
- var conn = getConnection(getApplication());
- var cs = null;
- try {
- var statement = conn.createStatement();
- var proced = "DROP PROCEDURE IF EXISTS sp1_"+formname+"_"+fieldname;
- statement.executeUpdate(proced);
- proced=" CREATE procedure sp1_"+formname+"_"+fieldname+"(out p int)";
- proced+=" begin select max(item_"+fieldname+") into p from tlk_"+formname+"; end";
- statement.executeUpdate(proced);
- cs = conn.prepareCall("{call sp1_"+formname+"_"+fieldname+"(?)}");
- //设置第一个输入参数的值为110
- cs.registerOutParameter(1, Packages.java.sql.Types.INTEGER);
- cs.execute();
- max= cs.getInt(1);
- $PRINTER.println("sssssssssssssssss" + max);
- } catch (e) {
- } finally {
- try {
- if(cs != null){
- cs.close();
- }
- if(conn != null){
- conn.close();
- }
- } catch (ex) {
- }
- }
- return max;
- }
复制代码 摘自忧郁的馒的帖子 原帖子链接:
http://www.teemlink.com/bbs/view ... 26amp%3Btypeid%3D45 |