Текущий архив: 2006.04.02;
Скачать: CL | DM;
ВнизADOQuery.Parameters Найти похожие ветки
← →
ilga (2006-03-17 12:04) [0]Доброе весеннее утро, Мастера!
Надоумте, пожалуйста:
формирую текс запроса и паралельно даю значения параметрам TADOQuery
SQL.Add(",@Param1=:Param1");
Parameters.ParamByName("Param1").Value := edit.text;
на очередное значение или прибавление куска запроса ошибка:
"Application uses a value of wrong type for current operation"
причем она возникает в разных местах, т.е. блуждающая - то работает, то нет.
Проверяю всё, не вижу что не так может быть :(.
Подскажите, что можно сделать?
← →
Megabyte © (2006-03-17 12:38) [1]
TADOQuery.SQL.Add(",@Param1=:Param1");
Шо это?
Где текст запроса?
← →
Ega23 © (2006-03-17 12:41) [2]
> Шо это?
> Где текст запроса?
По-видимому, это часть запроса, точнее часть текста выполнения ХП.
По сабжу: а какой тип у параметра? ftString? Как создаёшь параметр - в ран-тайме или в дизайн-тайме? Чему равно свойство ADOQuey.ParamCheck?
← →
ilga (2006-03-17 13:10) [3]ADOQuery.ParamCheck = true
параметров много и они разных типов
текс запроса и параметры формируются (создаются) в ран-тайме - для всех измененных значений.
получается что кверик не есть длинный текс + параметры
ошибка появляется только на определенную длину кверика :(
← →
ilga (2006-03-17 13:18) [4]еще поясню проблему:
приложение представляет собой n-ое кол-во закладок
пользователь редактирует некоторые из них,
для сохраниния ин-фы, я пробегаю по закладкам и формирую текст запроса, который включает в себя вызов различных процедур
когда делаю простой подстановкой значения в текст кверика("Param1="+"555") работает без проблем
а с использованием параметров траблы
← →
msguns © (2006-03-17 13:20) [5]Это глюк самого TADOQuery.
Лечится заменой "кверика" (TADOQuery) на "командик" (TADOCommand) или "датасетик" (TADODataSet),а также внимательным чтением статей sniknik на этом форуме
← →
ilga (2006-03-17 13:21) [6]спасибо :)
← →
msguns © (2006-03-17 13:23) [7]Если все же хоцца работать с TADOQuery, надо избегать кода типа
SQL.Add("A");
SQL.Add("B");
SQL.Add("C");
...
заменяя его на
SQL.Text := "A"+"B"+"C"
← →
Anatoly Podgoretsky © (2006-03-17 13:24) [8]И получишь ABC
← →
ilga (2006-03-17 13:26) [9]пробовала по всякому
не спасло
sniknik - это что? сорри за серость :(
← →
msguns © (2006-03-17 13:26) [10]>Anatoly Podgoretsky © (17.03.06 13:24) [8]
не умничай ;)
← →
msguns © (2006-03-17 13:26) [11]>ilga (17.03.06 13:26) [9]
>sniknik - это что? сорри за серость :(
Не ЧТО, а КТО.
Мастер. С большой буквы.
← →
msguns © (2006-03-17 13:28) [12]если не спасло, то разруха "в голове", т.е. в самом запросе. Текст которого надо взять из дебагеру и запастить сюдой
← →
ilga (2006-03-17 13:28) [13]ок, спасибо за советы :)
← →
ЮЮ © (2006-03-20 09:53) [14]
> формирую текс запроса и паралельно даю значения параметрам
> TADOQuery
Параллельность здесь неуместна.
SQL.Add(",@Param1=:Param1");
Parameters.ParamByName("Param1").Value := edit2.text;
SQL.Add(",@Param2=:Param2");
после этой строки Parameters, ИМХО, будут пересозданы, значение параметра Param1 неопределено и, как следствие этого, "Application uses a value of wrong type for current operation"
Сначала сформируй запрос полностью, затем заполняй параметры.
Страницы: 1 вся ветка
Текущий архив: 2006.04.02;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.044 c