在java中调用sqlserver存储过程的问题?
存储过程如下:
CREATE PROCEDURE [dbo].[test]
(
@Msg varchar(100),
@RetCur cursor varying output
)
AS
set @RetCur = cursor local scroll for
select * from....
open @RetCur
go
java调用:
String msg=null;
String sql = "{call chatsubmita(?,?)}";
Connection con = db.getConn();
CallableStatement spstmt = null;
ResultSet rs = null;
try{
spstmt = con.prepareCall(sql);
spstmt.setString(1,msg);
spstmt.registerOutParameter(2, Types.OTHER);//运行到这出错,错误提示看下面
spstmt.executeUpdate();
rs = (ResultSet)spstmt.getObject(2);
while(rs.next()){
System.out.println(record[index][1]);
}
}catch(Exception e){
System.out.println(e);
}
错误提示:[SQLServer 2000 Driver for JDBC]The specified SQL type is not supported by this driver.
数据库联接是没问题的,不知道在java中如何设置游标变量,帮我看看这个问题怎么解决??
问题点数:30、回复次数:1Top
1 楼doway(john)回复于 2006-03-11 00:59:28 得分 30
Sql Server 的存储过程与 Oracle 的完全不同,可以直接返回多行,因此楼主使用输出参数的做法不合理。
CREATE PROCEDURE [dbo].[test]
(
@Msg varchar(100)
)
AS
select * from.... where @Msg=...
go
这样就可以了。其他的东西楼主 GOOGLE:jdbc sql server 存储过程,定会大有所获。
Top




