【发布时间】:2014-03-08 13:44:44
【问题描述】:
我正在尝试使用准备好的语句来调用存储过程(使用带有经典 ASP 的 ADODB),但是当我设置 CommandType 时出现以下错误:
ADODB.Command 错误“800a0bb9”
参数类型错误、超出可接受范围或相互冲突。
我有以下代码:
With Server.CreateObject("ADODB.Command")
.ActiveConnection = db 'this is initialized prior
.CommandType = adCmdStoredProc
.CommandText = "procName"
End With
准备好的语句名称是正确的(我可以通过执行字符串来调用它),如果我省略 .CommandType 并尝试调用 .Execute,我会得到一个错误指定:
过程或函数“procName”需要参数“@ParamName”,但未提供。
即使我省略了 CommandType,我也不知道如何实际添加参数(以下内容只会导致有关错误类型的参数的原始错误):
.Parameters.Append .CreateParameter("@ParamName",adVarChar,adParamInput,50,param)
我也尝试了以下方法并收到错误“在与请求的名称或序号相对应的集合中找不到项目。”
.Parameters.Refresh
.Parameters(0) = param
我查看了几个如何使用准备好的语句调用存储过程的示例,看起来我使用了正确的语法,但我尝试的任何操作似乎都会导致某种错误。任何帮助将不胜感激。
【问题讨论】:
-
所以你的存储过程被称为'preparedStatementName'?
-
实际上不是。我在帖子中使用它作为占位符,因为我不确定我的工作是否适合我发布我们的 proc 名称。我应该使用“procName”之类的东西,但那一刻让我失望了。
-
发布您的存储过程或至少它的预期参数
-
@ulluoink:我无权访问存储过程的定义。
-
@ulluoink 我被告知程序需要什么参数,但我无法访问实际定义。
标签: sql stored-procedures vbscript asp-classic adodb