sql-server - 使用 Access VBA 从 SQL Server 存储过程获取 varchar OUTPUT 参数

标签 sql-server vba stored-procedures ms-access-2010

我在 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/

相关文章:

vba - 在 Excel 中使用列表重命名文件

VBA:在后台计算工作表,同时消息用户窗体处于事件状态

mysql - 存储过程还是 View ?

c# - 对 SSIS 中的列求和并发送电子邮件

.net - 出错后不关闭数据库连接会有什么后果?

sql-server - 带有 VS 2012 和 SQL Server 2012 的 WIndows 8 上的 msnodesql

sql - 在 DB2 的存储过程中动态定义变量类型

c# - 无法使用 db.Database.SqlQuery(sql) 执行我的 SQL Server 存储过程

list - Excel VBA 在填充和取消填充列表框时出错

stored-procedures - 试图在雪花语句中将参数作为绑定(bind)变量传递