if you are using ADO and you are returning a recordset, make sure you close it before accessing Command.Parameters("@ParamName"), see more athttp://www.15seconds.com/issue/010718.htmfor ADO.NET, see
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconusingstoredprocedureswithcommand.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconusingstoredprocedureswithcommand.asp
asselect top 1 @name=name from sysobjectsgodeclare @a varchar(100)exec pr_test @a outputprint @a
在delphi5.0+sqlserver7.0中屡试不爽
create procedure tt @re datetime output
as
set @re=getdate()
go--调用存储过程,并取得返回值
declare @i datetime
exec tt @i output--显示取得的结果
print @i
DECLARE ue_pass PROCEDURE FOR usp_temp_table_para @a_engname=:ls_engname, @a_user=:gs_user,@a_result=:li_result OUTPUT;
EXECUTE ue_pass;
CLOSE ue_pass;sql server 中的 usp_temp_table_para 为:create procedure usp_create_temp_table_passdata @a_engname varchar(30),@a_user varchar(30),@a_result integer output
asset @a_result = 1
select dbo.chs(@a_result)
print @a_result
go
但是不能得到 li_result 的正确值;
asset @a_result = 1
select dbo.chs(@a_result)
print @a_result
go