VBScript中的ADO参数错误

时间:2014-09-11 01:53:37

标签: sql-server vbscript ado

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

2 个答案:

答案 0 :(得分: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建议的刷新

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解决了这个问题