Stored procedures 参数的类型与存储过程参数不符
我使用一个存储过程返回一个产品价格,其中我向它发送了两个参数,一个是stockcode,另一个是customer number。当我运行此命令时,会出现以下错误Stored procedures 参数的类型与存储过程参数不符,stored-procedures,parameters,asp-classic,vbscript,adodb,Stored Procedures,Parameters,Asp Classic,Vbscript,Adodb,我使用一个存储过程返回一个产品价格,其中我向它发送了两个参数,一个是stockcode,另一个是customer number。当我运行此命令时,会出现以下错误 ADODB.Command error '800a0bb9' Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another. 我发送的两个参数都是字符串,它们的长度都可能不同 代码如下 bnno
ADODB.Command error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict
with one another.
我发送的两个参数都是字符串,它们的长度都可能不同
代码如下
bnno = request("bn")
stockcode = request("ht")
dim prices
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=stock;"&_
"User Id=username;Password=password;"
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = cn
Set prices = Server.CreateObject("ADODB.RecordSet")
cmd.CommandText = "sp_stockdata"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("htcode", adlongvarchar, _
adParamReturnValue)
cmd.Parameters.Append cmd.CreateParameter("bn", adlongvarchar, _
adParamInput)
cmd("htcode") = stockcode
cmd("bn") = bnno
set prices = cmd.Execute
有人能帮我更改此代码,以便我可以将文本发送到参数吗???adParamReturnValue参数只能是数字。要返回其他类型的数据,请阅读(并选择您的sqlserver版本)您以错误的方式使用存储过程。如中所述,
adParamReturnValue
表示“使用存储过程返回值”,它只能是数字代码
看起来您真正想要的是输出参数,即2 akaadParamOutput
。您也不能像这样将输出参数分配给局部变量。经过二读,我明白上面的说法是不正确的,留给其他可能会以类似方式感到困惑的人 据我所知,您真正想要的是只发送两个输入参数,因此正确的代码应该是:
cmd.CommandText = "sp_stockdata"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("htcode", adLongVarChar, adParamInput, Len(stockcode), stockcode)
cmd.Parameters.Append cmd.CreateParameter("bn", adLongVarChar, adParamInput, Len(bnno), bnno)
set prices = cmd.Execute
请注意,在使用
adLongVarChar
type时,还必须指定数据长度。存储过程需要哪些数据类型?