东西不难,但是第一次使用的时候还是折腾了我半小时。废话少说, 看代码。
1 后台sp伪代码(T-sql):
if exists (select * from sysobjects where name = 'someProcedoreName' and type = 'P')
drop proc someProcedoreName
go
create proc dbo.someProcedoreName
@param1 int,
@param2 varchar(7),
@param_out int output
AS
declare
... some varivles...
... some statements...
......
select @param_out = 0
......
2 在sql advantage客户端测试sp:
declare @rr int
exec someProcedoreName 920, '04/2009', @rr output
如果是一个没有带输出参数的sp, 用someProcedoreName param1, param2..就可以了,
但是我发现如果带输出参数,则要在前面加exec. 在这里耗了好久。
3 前端java代码:
public class TestSybaseProcedure {
public static void main(String[] args)throws Exception{
Class.forName("com.sybase.jdbc2.jdbc.SybDriver");
Connection cnn = DriverManager.getConnection("jdbc:sybase:Tds:db_url:port", "username", "password");
int status=-1;
CallableStatement cs = cnn.prepareCall("{ call someProcedoreName ?,?,? }");
cs.setInt(1, 920);
cs.setString(2, "04/2009");
cs.registerOutParameter(3, java.sql.Types.INTEGER);
cs.execute();
status = cs.getInt(3);
System.out.println(status);
}
}