Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отключить действие параметра в статическом созданном SQL [D2005, XP]


Alex7 ©   (2007-08-06 10:44:00) 

Здравствуйте, уважаемые мастера.
В статически созданой строке запроса компонента ADODataSet  имеется несколько параметров, которые применяются по примеру:
...
where (Field1 =:Param1)
and (Field2 =:Param2)
and (Field3 =:Param3)
и т.д.
Значения этих параметров меняются в runtime.

Вопрос: необходимо в runtime (динамически), чтобы одно или несколько из условий было выключено, т.е. эти условия для любых записей были равны True. Что присвоить параметру и как изменить условие, чтобы это реализовать?

Возможно ли это, или в этом случае надо всю сроку запроса делать динамической вместе со всеми параметрами.
Спасибо.
ps: MS Access 2003


Alex7   (2007-08-06 10:58:00) [1]

Спасибо большое.


Sergey13   (2007-08-06 10:55:00) [2]

> [0] Alex7 ©   (06.08.07 10:44)

Иногда (зависит от СУБД и/или компонет доступа) можно проверять сам параметр на Null
and (:Param2 is null or Field2 =:Param2)

иногда можно ввести "флаговый" дополнительный параметр, и управлять через него
and (:ParamFlag=0 or Field2 =:Param2)


Сергей М.   (2007-08-06 10:53:00) [3]


> Alex7 ©   (06.08.07 10:44)


Скорее всего придется формировать заново сам текст запроса.

Хотя в ряде случаев может подойти и

where Field1 LIKE :Param1

при этом для "отключения" контроля WHERE-условия значение параметра устанавливается равным '*'


Наверх

Титульная страница Поиск, карта сайта Написать письмо