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

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

[已解决] 存储过程问题

[复制链接]
深圳智宇 发表于 2013-11-25 11:14:11 | 显示全部楼层 |阅读模式
本帖最后由 echochen 于 2013-11-25 12:01 编辑

这是 我的脚本:var u="";
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(){
   //获取连接
   
  var maxs=0;
   var conn = getConnection(getApplication());

       
   var cs = null;
   try {
    var statement = conn.createStatement();
   var cid=getItemValueAsString("Meid");
    cs = conn.prepareCall("{ call getEncoding(?,?) }");
u=cs;
   
     cs.setString(1, "11e3-527e-6b85bb4b-a987-13bd8e479f23");
     cs.registerOutParameter(2, Types.VARCHAR);

     cs.execute();
     maxs= cs.getString(2);
   

  

   } catch (e) {
   } finally {
    try {
     if(cs != null){
      cs.close();
     }
     if(conn != null){
      conn.close();
     }
    } catch (ex) {
    }
   }
return u; }
callMax();

测试连接正常 ,在java类中测试 能正常得到 存储过程的值。  下面是我的过程

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[getEncoding]
@id  varchar(36) ,
@encoding  varchar(50) out
as

        declare @t_Level TABLE(ID varchar(36))
        declare @name varchar(50)
       
        --得到物料类型
        select @encoding=item_materieltypeid from tlk_MaterielEncoding where item_cid=@id
       
       
INSERT @t_Level SELECT @ID
    SELECT @ID=item_fid FROM tlk_MaterielEncoding
    WHERE item_cid=@ID
        AND item_fID IS NOT NULL
       
    WHILE @@ROWCOUNT>0
    BEGIN
        INSERT @t_Level SELECT @ID
        SELECT @ID=item_fID FROM tlk_MaterielEncoding
        WHERE item_cid=@ID
            AND item_fID IS NOT NULL
    END
   
select @encoding=@encoding+item_pcode from tlk_MaterielEncoding where item_cid in (select id from @t_Level)
 楼主| 深圳智宇 发表于 2013-11-25 11:22:43 | 显示全部楼层
上面的u变量 是我用于测试的  其他的数据 都能得到 但是当u=max 得到的是null 的,我在java类中测试是 正常 获取 数据的。
 楼主| 深圳智宇 发表于 2013-11-25 12:00:00 | 显示全部楼层
通过远程 已解决
echochen 发表于 2013-11-25 12:01:03 | 显示全部楼层
感谢您的反馈。

本版积分规则

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

GMT+8, 2026-8-13 10:21

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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