![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
AND и OR при параметрич.запросе [D5, Paradox]
PKT © (2002-11-15 05:53:00)SELECT * FROM Data.db WHERE
(Num = :Num1) AND (Num = :Num2)
Далее
Params[0].AsInteger := 1;
Params[1].AsInteger := 1;
Проходит нормально, причем неважно, какие значения
присваиваются.
Но если поставить "ИЛИ"
SELECT * FROM Data.db WHERE
(Num = :Num1) OR(Num = :Num2)
то вываливается
Access violation at address 4C5F30C9 in module "idsql32.dll".
Неужто нельзя использовать OR при обращении через параметры
к одному и тому же полю дважды ?
PKT (2002-11-15 10:50:00) [1]to: sniknik © (15.11.02 10:43)
Спасибо, пожалуй так и сделаю.
sniknik (2002-11-15 10:43:00) [2]так тоже работает
WHERE NOT ((Num<>:Num1) AND (Num<>:Num2))
проще конечно в запрос значение вставить без параметра текстом.
(замазывание проблемы)
PKT (2002-11-15 10:30:00) [3]to: sniknik © (15.11.02 09:53)
Предиката IN не прокатывает в параметр.запросах, это я на
форуме уяснил.
to:Котелок © (15.11.02 09:55)
Имелось в виду ParamValues ? Все равно ошибка вываливается.
Что интересно, если добавить
SELECT * FROM Data.db WHERE
(Num = :Num1) OR (Num = :Num2)
AND (Num < ЗаведомоБольшоеЧисло)
то все работает
oss (2002-11-15 10:25:00) [4]1. попробую
SELECT * FROM Data.db WHERE
((Num = :Num1) OR (Num = :Num2))
2. сделай переменную "SELECT * FROM Data.db %s"
потом по надобности испольуй Format и заноси все что душе угодно.
sniknik (2002-11-15 10:23:00) [5]да уж забавное свойство BDE параметров (проверил всетаки), вставка значения в текст такого запроса работает, а с параметрами Access violation.
Котелок (2002-11-15 09:55:00) [6]Поробуй через parambyname заполнять.
sniknik (2002-11-15 09:53:00) [7]странно должно работать (неохота проверять)
попробуй так
SELECT * FROM Data.db WHERE Num IN (:Num1, :Num2)