我尝试了许多很多东西,但在尝试向命令对象添加参数时,不断收到错误3001(参数类型错误,超出可接受的范围,或者彼此冲突)。
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = con
cmd.CommandText = "ProcName"
cmd.CommandType = 4 'adCmdStoredProc
MsgBox("0")
'cmd.Parameters.Append(cmd.CreateParameter("@InvoiceNumber", adVarChar, adParamInput, 100, sInvoice))
Set pInvoiceNumber = cmd.CreateParameter("@InvoiceNumber", adVarChar, adParamInput, 100, sInvoice)
cmd.Parameters.Append(pInvoiceNumber)
连接对象有效,并在此代码运行时打开。存储过程的@InvoiceNumber参数是varchar(100)。我在这里缺少什么?
答案 0 :(得分:1)
我无法复制这个问题,但我正在使用Classic ASP。我发现这篇文章听起来可能与之相关。
由于后期绑定,似乎adVarChar和adParamInput常量可能是问题。分辨率是将常量添加到Sub标题。
如果这不可行,请尝试使用Oracle Certified Professional建议的刷新
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = con
cmd.CommandText = "ProcName"
cmd.CommandType = 4 'adCmdStoredProc
cmd.Parameters.Refresh
cmd.Parameters(0).Value = sInvoice
答案 1 :(得分:0)
我用asp.page顶部的包含库ADOLib.inc解决了这个问题