Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];

Вниз

Нужна помощь по 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
3-52089
Denisiy
2003-11-24 14:34
2003.12.16
---|Ветка была без названия|---


1-52276
ИМХО
2003-12-04 08:41
2003.12.16
Пример рекурсии


1-52191
andrew2
2003-12-03 00:04
2003.12.16
Implementation section variable


1-52200
Maks Realov
2003-12-05 11:51
2003.12.16
FreeAndNil и метод Free у классов от TWinControl.


14-52348
ИМХО
2003-11-23 06:28
2003.12.16
Новосибирск: как не заблудиться





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский