我在 SQL Server 中有以下存储过程,并且可以从 SQL Server 中很好地调用它:
CREATE PROCEDURE uspRecipeNote
@IngString varchar(255) OUTPUT,
@MixID int = NULL
AS
SET NOCOUNT ON;
SET @IngString = dbo.ufnRecipeNote(@MixID);
我几个月来一直在 Access 中使用 VBA 调用存储过程,从未遇到过问题,但尝试了几种可能性,但很困惑,根据我的尝试,出现以下错误之一:
“参数对象定义不正确。提供的信息不一致或不完整。” “过程或函数 uspRecipeNote 指定了太多参数。”
这是我目前在 VBA 中所拥有的内容:
Set cmd.ActiveConnection = cn
cmd.CommandTimeout = 0
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "uspRecipeNote"
'add parameters
cmd.Parameters.Append cmd.CreateParameter("@IngString", adVarChar, adParamOutput)
cmd.Parameters.Append cmd.CreateParameter("@MixID", adInteger, adParamInput, , intMixID)
cmd.Execute
无论我尝试什么,我都会在第一个参数上遇到错误。我怀疑这很简单。预先感谢您的帮助!
最佳答案
字符串参数需要定义一个(最大)长度,例如,
cmd.Parameters.Append cmd.CreateParameter("@IngString", adVarChar, adParamOutput, 255)
关于sql-server - 使用 Access VBA 从 SQL Server 存储过程获取 varchar OUTPUT 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36361593/