Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.16;
Скачать: CL | DM;

Вниз

Нужна помощь по SQL   Найти похожие ветки 

 
Inkotex   (2003-11-25 09:27) [0]

Может кто знает. Надо сделать запрос к таблице на выборку всех значений которые соответствуют некоторым критериям.
Критерия есть 3. Когда я задаю все критери все рабатает.
А если на пример 1 и 3, 2 пустое значение неработает. Что сделать?
Привожу пример кода.

var
Oblast,Rayon,TypePam:String;


DMMain.IBQLocation.SQL.Clear;
DMMain.IBQLocation.SQL.Add(Format("SELECT * FROM LOCATION where AREA=%s and REGION=%s and TYPE_PAM=%s", [Oblast, Rayon, TypePam]));
DMMain.IBQLocation.Active:=False;
DMMain.IBQLocation.Active:=True;


 
Johnmen ©   (2003-11-25 09:31) [1]

...AREA=%s and TYPE_PAM=%s",...


 
Виктор Щербаков ©   (2003-11-25 09:31) [2]

"неработает" - это как понимать?


 
Deniz ©   (2003-11-25 09:37) [3]

Заменить "=" на "like". Для строковых полей сойдет


 
Inkotex   (2003-11-25 09:37) [4]

1) Не работает - выдает ошибку
Если одно из значений пустое- ошибка типа неизвессное Or или AND
2) (Format("SELECT * FROM LOCATION where AREA=%s or REGION=%s or TYPE_PAM=%s", [Oblast, Rayon, TypePam])); тоже не работает
3) Может в SQL есть какойта символ, который если передаш в запрос он будет соответсвовать типа всем значениям?


 
Виктор Щербаков ©   (2003-11-25 09:40) [5]


> Если одно из значений пустое- ошибка типа неизвессное Or
> или AND

Конечно! Следующей лексемой должно быть строковое значение, а у тебя and или or.


 
Inkotex   (2003-11-25 09:42) [6]

если заменить на Like вот такая ошибка
Dynamic SQL error
SQL error code=-104
Token Unknown-line 1, char 59 or"


 
Inkotex   (2003-11-25 09:43) [7]

[5] Вот ето и надо предвидеть что одно из значений может быть пустое.


 
Виктор Щербаков ©   (2003-11-25 09:54) [8]

Inkotex (25.11.03 09:43) [7]
Вот и сравнивай значения с пустой строкой.
Если равно, то формируй запрос как в Johnmen © (25.11.03 09:31) [1]


 
ЮЮ ©   (2003-11-25 09:55) [9]

>Вот ето и надо предвидеть что одно из значений может быть пустое

Вот и предвидь. Или собирай Where по частям, анализируя значения переменных или
(Format("SELECT * FROM LOCATION where ((%s = 0) or (AREA=%s)) and ((%s = 0) or REGION=%s) and ((%s = 0) or (TYPE_PAM=%s))", [Oblast, Oblast,Rayon, Rayon, TypePamn TypePam]));



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

Текущий архив: 2003.12.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
1-52138
oens
2003-12-03 15:34
2003.12.16
Поиск в HTML


1-52172
tvic
2003-12-03 15:45
2003.12.16
Как изменить ширину выпадающего списка у ComboBoxа?


14-52392
Думкин
2003-11-21 04:43
2003.12.16
С днем рождения! 21 ноября.


8-52297
Чайник
2003-08-20 19:20
2003.12.16
Компоненты


3-52073
SlavaSH
2003-11-24 14:10
2003.12.16
SQL