我正在尝试从ASP页面在Access数据库中运行一些存储的查询。我想使用ADO Command对象来运行该过程,而不是简单地将字符串发送到数据库来执行。当我尝试创建要发送到存储过程的参数时,我的麻烦正在发生。我正在使用Command对象的'CreateParameter'方法。它需要5个可选参数,其中我只想使用两个;名称和值(分别为参数1和5)。
我尝试了以下方法来设置参数:
1)使用命名参数
command.Parameters.Append command.CreateParameter name:="name", value:="value"
2)在括号内使用命名参数
command.Parameters.Append command.CreateParameter(name:="name", value:="value")
3)省去我不需要的可选参数
command.Parameters.Append command.CreateParameter("name", , , , "value")
实现我想要做的事情的简单方法是什么,为什么我的语法在这些情况下会失败?我显然在这里遗漏了一些东西!
答案 0 :(得分:2)
VBScript不支持带或不带括号的命名参数。为Command对象的CreateParameter方法传递(特定或空白)所需的所有参数。
对于问题中的第3部分,请看一下:
CreateParameter(
name`[optional], <- fits ("name")
type [optional, default = adEmpty], <- NOT fits (type is not empty)
direction[Optional default = adParamInput], <- fits (blank)
size [optional default = 0], <- NOT fits (at least 5 for "value")
value[optional] <- fits ("value")
)
因此,您应至少为文本值参数指定类型和大小。方向已经adParamInput
。
Const adVarChar = 200 ' From adovbs.inc or Ado TypeLib
command.Parameters.Append command.CreateParameter("name", adVarChar, , 5, "value")
答案 1 :(得分:0)
这是一个可以遵循的例子。
http://www.webconcerns.co.uk/asp/accessqueries/accessqueries.asp
另见
http://bytes.com/topic/asp-classic/answers/628368-running-access-stored-queries-parameters
记住访问使用存储的查询而非存储过程,因此存在一些差异。有关其他信息,请搜索
ASP使用参数存储查询 - .net