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

[其他] 请问在表单”保存“动作执行后调用数据源的存储过程,脚本怎么写?

[复制链接]
江苏海洋地质院 发表于 2015-4-1 16:46:50 | 显示全部楼层 |阅读模式
本帖最后由 bill 于 2015-4-1 17:27 编辑

我想在表单”保存“动作执行后调用数据源里定义的存储过程,我的数据源是 "SQL Server 2008"我的存储过程没有参数
我参照论坛上的示例代码改的,但是没有”保存“执行后,存储过程没有执行,请帮我看看我脚本哪里写的不对,要怎么写?
  1. /* 调用无参数的存储过程  */
  2. function callsp(){
  3.    //获取连接
  4.    var conn = getConnection(getApplication());
  5.    var cs = null;
  6.    try {
  7.     var strcall = "{cal mysp(?)}";
  8.            println("/----------------------------/");
  9.            println(strcall);
  10.     cs = conn.prepareCall(strCall);
  11.     cs.execute();
  12.    } catch (e) {
  13.    } finally {
  14.     try {
  15.      if(cs != null){
  16.       cs.close();
  17.      }
  18.      if(conn != null){
  19.       conn.close();
  20.      }
  21.     } catch (ex) {
  22.     }
  23.    }
  24. }
复制代码


补充内容 (2015-4-1 16:49):
最后一句说的不清楚,字打快了,是”保存“动作执行之后,没有执行我的存储过程。
bill 发表于 2015-4-1 17:27:18 | 显示全部楼层
使用java调用带出参的存储过程

public class ProceTest {

    public static void main(String[] args) throws Exception {
        Connection conn = null;
        CallableStatement statement = null;
        String sql = "{call stu_proc(?)}";
        try {
            conn = ConnUtils.getConnection();
            statement = conn.prepareCall(sql);
            statement.registerOutParameter(1, Types.VARCHAR);
            statement.executeUpdate();
            //输出:lisi
            String sname = statement.getString(1);
            System.out.println(sname);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            ConnUtils.free(null, statement, conn);
        }
    }

}
回复

使用道具 举报

 楼主| 江苏海洋地质院 发表于 2015-4-1 17:54:14 | 显示全部楼层
我想在表单”保存“动作执行后的iScript脚本中调用数据源里定义的存储过程,请问我的脚本错在哪里??要怎么改??
回复

使用道具 举报

bill 发表于 2015-4-1 18:03:23 | 显示全部楼层
String sql = "{call stu_proc(?)}";
        try {
            conn = ConnUtils.getConnection();
            statement = conn.prepareCall(sql);
            statement.registerOutParameter(1, Types.VARCHAR);
            statement.executeUpdate();
你调用的是带出参的存储过程方式,补上参数试试,jdbc调用存储过程的例子百度上有很多详细的可以给你参考,无参的就把?去掉试试。
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-8-14 07:47

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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