Вниз
Скачать: CL | DM;

AND и OR при параметрич.запросе   Найти похожие ветки 

← →
PKT   (2002-11-15 05:53) [0]

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 при обращении через параметры
к одному и тому же полю дважды ?


← →
sniknik ©   (2002-11-15 09:53) [1]

странно должно работать (неохота проверять)
попробуй так
SELECT * FROM Data.db WHERE Num IN (:Num1, :Num2)


← →
Котелок ©   (2002-11-15 09:55) [2]

Поробуй через parambyname заполнять.


← →
sniknik ©   (2002-11-15 10:23) [3]

да уж забавное свойство BDE параметров (проверил всетаки), вставка значения в текст такого запроса работает, а с параметрами Access violation.


← →
oss ©   (2002-11-15 10:25) [4]

1. попробую
SELECT * FROM Data.db WHERE
((Num = :Num1) OR (Num = :Num2))
2. сделай переменную "SELECT * FROM Data.db %s"
потом по надобности испольуй Format и заноси все что душе угодно.




← →
PKT   (2002-11-15 10:30) [5]

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 < ЗаведомоБольшоеЧисло)
то все работает


← →
sniknik ©   (2002-11-15 10:43) [6]

так тоже работает
WHERE NOT ((Num<>:Num1) AND (Num<>:Num2))
проще конечно в запрос значение вставить без параметра текстом.
(замазывание проблемы)


← →
PKT   (2002-11-15 10:50) [7]

to: sniknik © (15.11.02 10:43)
Спасибо, пожалуй так и сделаю.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
1-4487
race1
2002-11-19 17:22
2002.12.02
paskal vs. w2k


1-4356
AndrewVolkov
2002-11-19 21:58
2002.12.02
UpCase(Char) есть ли у этой функции антоним???


1-4298
borg
2002-11-21 12:27
2002.12.02
как определить


7-4637
Infinity
2002-09-30 01:11
2002.12.02
Как отключить возможность изменения времени!


14-4564
Anatoly Podgoretsky
2002-11-11 07:44
2002.12.02
Именинники 11 ноября




   Наверх