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