`
wolongsuxing
  • 浏览: 16405 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

带输出参数的存储过程

阅读更多

 后台sp伪代码(T-sql):

 

  1. if exists (select * from sysobjects where name = 'someProcedoreName' and type = 'P')  
  2.    drop proc someProcedoreName  
  3. go  
  4.   
  5. create proc dbo.someProcedoreName  
  6. @param1 int,  
  7. @param2 varchar(7),   
  8. @param_out int output  
  9. AS  
  10. declare  
  11. ... some varivles...  
  12. ... some statements...  
  13. ......  
  14. select @param_out = 0  
  15. ......  

2 在sql advantage客户端测试sp:

 

declare @rr int
exec someProcedoreName 920, '04/2009', @rr output

如果是一个没有带输出参数的sp, 用someProcedoreName param1, param2..就可以了,

但是我发现如果带输出参数,则要在前面加exec. 在这里耗了好久。

3 前端java代码:

 

  1. public class TestSybaseProcedure {  
  2.  public static void main(String[] args)throws Exception{  
  3.   Class.forName("com.sybase.jdbc2.jdbc.SybDriver");  
  4.   Connection cnn = DriverManager.getConnection("jdbc:sybase:Tds:db_url:port""username""password");   
  5.   int status=-1;  
  6.   CallableStatement cs = cnn.prepareCall("{ call someProcedoreName ?,?,? }");  
  7.   cs.setInt(1920);  
  8.   cs.setString(2"04/2009");  
  9.   cs.registerOutParameter(3, java.sql.Types.INTEGER);  
  10.   cs.execute();  
  11.   status = cs.getInt(3);  
  12.   System.out.println(status);  
  13.  }  
  14. }  

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics