我想使用经典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方法,然后返回,然后获取异常。
为Size参数传递值
来自CreateParameter Method (ADO)的文档
如果在Type参数中指定了可变长度数据类型,则必须先传递Size参数或设置Parameter对象的Size属性,然后再将其附加到Parameters集合;否则,将发生错误。