0x800a0e7 c - ADODB.Parameters: Объект параметра неправильно определен. Непоследовательная или неполная информация была предоставлена - PullRequest
2 голосов
/ 11 февраля 2020

Я хочу выполнить sql запросов с параметрами в classi c asp. Для этого я использую объект 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» - это метод, который возвращает тип данных, и он работает нормально. В целом метод работает нормально, но в конкретном сценарии получается исключение ниже:

0x800a0e7 c - ADODB.Parameters: Объект параметра неправильно определен. Была предоставлена ​​непоследовательная или неполная информация.

В приведенном выше коде, когда мы l oop над массивом параметров, когда значение параметра равно "%", оно выдает выше исключения. Я даже пытался добавить дополнительные одинарные кавычки ("'%'"), но все еще получал то же исключение. В этом случае тип данных приходит в виде строки (число ie. 129 и правильное значение), а значение равно «%» (пробовал с «%»).

Я нашел много похожих вопросов, в которых люди получили ту же ошибку, но причины отличались от моего случая.

Вещи, которые я пробовал: 1. Добавлена ​​ссылка на adovbs.inc 2. Передача правильного типа данных 3. В элементе управления отладчиком переходит к методу GetDataType, возвращается и затем получает исключение.

1 Ответ

2 голосов
/ 12 февраля 2020

Передайте значение для аргумента Размер

Из do c для Метод CreateParameter (ADO)

Если вы указываете тип данных переменной длины в аргументе Type, вы должны либо передать аргумент Size, либо установить свойство Size объекта Parameter перед добавлением его в коллекцию Parameters; в противном случае возникает ошибка.

...