0x800a0e7c-ADODB.Parameters:参数对象定义不正确。提供的信息不一致或不完整]

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

我想使用经典ASP中的参数执行sql查询。为此,我使用了ADODB COMMAND对象和一个参数数组,我一次遍历并将一个参数绑定到ADODB COMMAND对象。看到我下面的代码:

 PRIVATE FUNCTION MapParametersToCommand(dbCmd, arrayParameters)
    FOR EACH parameter IN arrayParameters
        dbCmd.Parameters.Append dbCmd.CreateParameter(, GetDataType(parameter), 1, , parameter)            
    NEXT    
END FUNCTION

“ GetDataType”是一种返回数据类型的方法,并且工作正常。总体而言,方法工作正常,但在特定情况下出现以下异常:

0x800a0e7c-ADODB.Parameters:参数对象定义不正确。提供的信息不一致或不完整。

在上面的代码中,当我们遍历参数数组时,当参数值为“%”时,它将引发以上异常。我什至尝试添加额外的单引号(“'%'”),但仍然遇到相同的异常。在这种情况下,数据类型以字符串形式出现(即,数字为129,并且也正确),值为“%”(尝试使用“'%'”)。

我发现了许多类似的问题,其中人们犯了相同的错误,但原因与我的情况不同。

我尝试过的事情:1.添加了adovbs.inc的参考2.传递正确的数据类型3.在调试器中,控制转到GetDataType方法,然后返回,然后获取异常。

vbscript asp-classic adodb
1个回答
0
投票

Size参数传递值

来自CreateParameter Method (ADO)的文档

如果在Type参数中指定了可变长度数据类型,则必须先传递Size参数或设置Parameter对象的Size属性,然后再将其附加到Parameters集合;否则,将发生错误。

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