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

0x800a0e7c - ADODB.Parameters: Parameter object is improperly defined. Inconsistent or incomplete information was provided

我想在经典 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: Parameter object is improperly defined. Inconsistent or incomplete information was provided.

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

我发现了很多类似的问题,其中人们得到了同样的错误,但原因与我的情况不同。

我尝试过的事情: 1.增加了adovbs.inc的引用 2.传递正确的数据类型 3. 在调试器控件中转到 GetDataType 方法并返回然后出现异常。

Size 参数传入一个值

来自 CreateParameter Method (ADO)

的文档

If you specify a variable-length data type in the Type argument, you must either pass a Size argument or set the Size property of the Parameter object before appending it to the Parameters collection; otherwise, an error occurs.