当前位置: 技术问答>java相关
使用存储过程(急)
来源: 互联网 发布时间:2015-06-12
本文导语: sql server 中调用存储过程结果很奇怪 表:id int, name varchar(10) 100 test 存储过程: CREATE PROCEDURE GetMaxID(@TbName varchar(30), @MaxID int output) AS begin update tbid set id=id+1 where name=@TbName ...
sql server 中调用存储过程结果很奇怪
表:id int, name varchar(10)
100 test
存储过程:
CREATE PROCEDURE GetMaxID(@TbName varchar(30), @MaxID int output)
AS
begin
update tbid set id=id+1 where name=@TbName
select @MaxId=id from tbId where where name=@TbName
end
GO
java程序:
CallableStatement cs =null;
Integer iId = null;
String sSP="{call getMaxID(?,?)}";
cs = con.prepareCall(sSP);
cs.setString(1, "test");
cs.registerOutParameter(2, Types.INTEGER);
cs.executeUpdate();
iId = new Integer(cs.getInt(2));
得到的id结果正确为101, 但是该条记录并未更新,每次执行都是这个结果
太奇怪了
表:id int, name varchar(10)
100 test
存储过程:
CREATE PROCEDURE GetMaxID(@TbName varchar(30), @MaxID int output)
AS
begin
update tbid set id=id+1 where name=@TbName
select @MaxId=id from tbId where where name=@TbName
end
GO
java程序:
CallableStatement cs =null;
Integer iId = null;
String sSP="{call getMaxID(?,?)}";
cs = con.prepareCall(sSP);
cs.setString(1, "test");
cs.registerOutParameter(2, Types.INTEGER);
cs.executeUpdate();
iId = new Integer(cs.getInt(2));
得到的id结果正确为101, 但是该条记录并未更新,每次执行都是这个结果
太奇怪了
|
从别处找来的,希望对你有帮助。
JSP数据库操作例程 - 存储过程 - JDBC-ODBC - SQL Server
您尊姓大名:
JSP数据库操作例程 - 存储过程 - JDBC-ODBC - SQL Server
我是
返回值是
JSP数据库操作例程 - 存储过程 - JDBC-ODBC - SQL Server
您尊姓大名:
JSP数据库操作例程 - 存储过程 - JDBC-ODBC - SQL Server
我是
返回值是
|
是不是你把autocommit设置为false,
然后自己又没有去commit啊?
然后自己又没有去commit啊?
|
con.close(), you need to call this function after update
|
是呀,应该是没有commit的缘故吧
|
首先,在SQL QUERY也就是查询分析器里执行你的过程,看结果对不对!
然后,你再看你的调用时哪个入口参数的值对不对,
最后,就是COMMIT的事了,这个楼上说的没错!
然后,你再看你的调用时哪个入口参数的值对不对,
最后,就是COMMIT的事了,这个楼上说的没错!