这应该很容易,但我还没有找到真正简洁的答案。我在 sql server 中有一个非常简单的存储过程,它返回一个整数值。我想要做的就是将该返回值放入变量中以便在 Access 中使用。
存储过程:
ALTER PROCEDURE [dbo].[out_GetNextID]
@NextSumID integer
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT @NextSumID = IDENT_CURRENT('Outage Summary')+IDENT_INCR('Outage Summary')
RETURN @NextSumID
END
我正在使用 ADODB 执行存储过程,我觉得问这个问题很愚蠢,但是在运行 cmd.Execute 后如何访问 Access 中的返回值?提前致谢,并对这个蹩脚的问题表示歉意。
有两种方法,使用输出参数或设置一个ReturnValue
(下面讨论)。对于 OUTPUT 参数,引用此SO link:
本质上你只需要创建一个SqlParameter,设置Direction
到Output,并将其添加到SqlCommand 的Parameters 集合中。然后
执行存储过程并获取参数值。
请参阅该页面中的代码。
但是,您还需要在变量声明中包含单词 OUT(或 OUTPUT):
@NextSumID integer OUT
当您将变量声明为 OUT(或 OUTPUT)时,它将自动返回,无论过程完成时它具有什么值,因此您可以只使用 RETURN。
从存储过程返回数据:MSDN
相反,您可以使用RETURN @NextSumID
因为您只是返回一个整数值。对于这种方法,您需要将参数指定为ReturnValue
:
theParameter.Direction = ParameterDirection.ReturnValue
该方法将进一步讨论这里(MSDN).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)