![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужна помощь по SQL [D7, IB6.x]
Inkotex © (2003-11-25 09:27:00)
Может кто знает. Надо сделать запрос к таблице на выборку всех значений которые соответствуют некоторым критериям.
Критерия есть 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;
ЮЮ (2003-11-25 09:55:00) [1]
>Вот ето и надо предвидеть что одно из значений может быть пустое
Вот и предвидь. Или собирай 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]));
Виктор Щербаков (2003-11-25 09:54:00) [2]
Inkotex (25.11.03 09:43) [7]
Вот и сравнивай значения с пустой строкой.
Если равно, то формируй запрос как в Johnmen © (25.11.03 09:31) [1]
Inkotex (2003-11-25 09:43:00) [3]
[5] Вот ето и надо предвидеть что одно из значений может быть пустое.
Inkotex (2003-11-25 09:42:00) [4]
если заменить на Like вот такая ошибка
Dynamic SQL error
SQL error code=-104
Token Unknown-line 1, char 59 or"
Виктор Щербаков (2003-11-25 09:40:00) [5]
> Если одно из значений пустое- ошибка типа неизвессное Or
> или AND
Конечно! Следующей лексемой должно быть строковое значение, а у тебя and или or.
Deniz (2003-11-25 09:37:00) [6]
Заменить "=" на "like". Для строковых полей сойдет
Inkotex (2003-11-25 09:37:00) [7]
1) Не работает - выдает ошибку
Если одно из значений пустое- ошибка типа неизвессное Or или AND
2) (Format("SELECT * FROM LOCATION where AREA=%s or REGION=%s or TYPE_PAM=%s", [Oblast, Rayon, TypePam])); тоже не работает
3) Может в SQL есть какойта символ, который если передаш в запрос он будет соответсвовать типа всем значениям?
Johnmen (2003-11-25 09:31:00) [8]
...AREA=%s and TYPE_PAM=%s",...
Виктор Щербаков (2003-11-25 09:31:00) [9]
"неработает" - это как понимать?