求助:jdbc、sql server存储过程,返回参数的问题。

overmax 2006-05-10 11:59:25
用jdbc调用sql server中的存储过程,返回一个计算结果,参数可从java传递到存储过程中,可是为什么传不回来?

import java.sql.*;
public class A
{
public static void main(String args[])
{
String url = "jdbc:odbc:mydatabase";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//加载jdbc-odbc桥驱动
}
catch(java.lang.ClassNotFoundException e) { }
Connection con=null;
String login = "sa";
String password ="";
try {
con = DriverManager.getConnection(url,login,password);
//数据库连接
}
catch(SQLException ex) { }
int i=273;
int c=15;
float j=0;
try{CallableStatement proc = con.prepareCall("{?=call UGT1(?)}");
proc.registerOutParameter(1,Types.NUMERIC);
//proc.setInt(1,i);
//proc.setInt(2,c);
//proc.setFloat(1,j);
proc.execute();
j=proc.getFloat(1);
con.close();
}
catch (Exception e)
{
};
System.out.println(j);
}
}

存储过程:

CREATE PROCEDURE UGT1(@thermalcapacity float output)
as

declare @A float,@B float,@C float,@T int,@ID int
set @T=273
set @ID=15
select @A=A,@B=B,@C=C
FROM 1表
where ID=@ID
set @thermalcapacity=@A+@B*@T/100+@C*@T*@T/1000000
GO

编译执行后,存储过程没有执行。

感觉上是proc.registerOutParameter(1,Types.NUMERIC);有问题,应该是Types.NUMERIC吧?

问题何在?怎么改?
...全文
94 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧