我尝试了许多很多东西,但在尝试向命令对象添加参数时,继续收到错误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)。我在这里错过了什么?
我无法复制这个问题,但我正在使用Classic ASP。我发现这篇文章听起来可能是相关的。
由于后期绑定,似乎adVarChar和adParamInput常量可能是问题。分辨率是将常量添加到Sub标头。
如果这不可行,请尝试使用Oracle Certified Professional的Refresh建议
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = con
cmd.CommandText = "ProcName"
cmd.CommandType = 4 'adCmdStoredProc
cmd.Parameters.Refresh
cmd.Parameters(0).Value = sInvoice
我在asp.page上解决了包含库ADOLib.inc的问题