VBScript中的ADO参数错误

问题描述 投票:1回答:2

我尝试了许多很多东西,但在尝试向命令对象添加参数时,继续收到错误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)。我在这里错过了什么?

sql-server vbscript ado
2个回答
1
投票

我无法复制这个问题,但我正在使用Classic ASP。我发现这篇文章听起来可能是相关的。

VBA: Run-time error 3001 Arguments Are Of The Wrong Type... when setting ADODB.Command object members

由于后期绑定,似乎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

0
投票

我在asp.page上解决了包含库ADOLib.inc的问题

© www.soinside.com 2019 - 2024. All rights reserved.