![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как осуществить выборку с помощью SQL? [D7, XP]
igorntk © (2009-03-18 12:17:00)без учета регистра и окончания слов?
Сделал без учета регистра:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select kod, naimen from tovar.dbf');
Query1.SQL.Add('where upper(trim(NAIMEN))= "' + Edit2.Text + '"');
Query1.Open;
Тут же нужно добавить возможность фильтрации без окончания слова. Возможно ли добавитьLIKE?
sniknik (2009-03-19 14:45:00) [1]> Спасибо!
лучше бы сказал спасибо за
> 12 (19.03.09 08:52) [17]
> where (NAIMEN like 'a%' ) or (NAIMEN like 'A%')
igorntk (2009-03-19 14:08:00) [2]
> pavel_guzhanov © (19.03.09 09:04) [18]
> where upper(naimen) like 'А%'
Спасибо!
MonoLife (2009-03-19 13:47:00) [3]Или вообще поставить:
LIKE QuotedStr(%a%)
> igorntk (19.03.09 08:37) [16]
Зачем здесь поиск по "а"? В таком случае достаточно сортировки (фильтра)
pavel_guzhanov (2009-03-19 09:04:00) [4]where upper(naimen) like 'А%'
12 (2009-03-19 08:52:00) [5]where (NAIMEN like 'a%' ) or (NAIMEN like 'A%')
igorntk (2009-03-19 08:37:00) [6]База DBase.
поиск поwhere NAIMEN like 'a%'дает результат:
автор;
акула;
актер.
Мне нужен резльтат таким:
автор;
Абрикос;
акула;
АНГАР;
актер.
Подскажите, пожалуйста, как правильно написать код, чтобы получился поиск без учета регистра?
Anatoly Podgoretsky (2009-03-18 19:39:00) [7]У него только D7 и XP
Anatoly Podgoretsky (2009-03-18 19:38:00) [8]Не надрывайтесь, нет у него базы
немо2 (2009-03-18 17:03:00) [9]where NAIMEN like 'a%'
Медвежонок Пятачок (2009-03-18 16:36:00) [10]ни в каком
"C:\Program Files\Common Files\Borland Shared\BDE\localsql.hlp"
igorntk (2009-03-18 16:32:00) [11]Вот так не работает:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select kod, naimen from tovar.dbf');
Query1.SQL.Add('where NAIMEN containing "a"');
Query1.Open;
Подскажите, в каком виде CONTAINING будет работать?
sniknik (2009-03-18 15:36:00) [12]какие подлые разработчики используемого тобой движка... не реализовали с CONTAINING тот вариант который ты ему пытаешься пропихнуть...
в суд на них подай... за моральное неудобство...
igorntk (2009-03-18 14:54:00) [13]Почему при использовании
CONTAINING
появляется ошибка: "Capability not supported"? ведь как раз этот оператор удобен тем, что не чувствителен к ресгистру
немо2 (2009-03-18 13:26:00) [14]Query1.SQL.text:=
' select '+
' clCol1, clCol2 '+
' from '+
' tbTabl '+
' where '+
' clCol1 = 1 '+
' or '+
' clCol2 = 2 ';
igorntk (2009-03-18 13:20:00) [15]А можно подробнее, как это сделать? Не совсем получается...
немо2 (2009-03-18 12:51:00) [16]чтобы одновременно
where
условие
or
условие
igorntk (2009-03-18 12:32:00) [17]не могу дописать в данный код оператор LIKE, чтобы была возможность поиска без учета регистра и окончания слов.
Либо так:
Query1.SQL.Add('where upper(trim(NAIMEN))= "' + Edit2.Text + '"');
либо так:
Query1.SQL.Add('where NAIMEN like "' + Edit2.Text + '"||"%"');
А чтобы одновременно искал по этим параметрам сделать не могу.
sniknik (2009-03-18 12:31:00) [18]> Возможно ли добавить LIKE?
лучше не добавить, а заменить... (то что у тебя там счаз в where) т.к. точное сравнение это частность от сравнения на начало "без окончания слова".
чтобы не было двойной проверки одного и того же.
> Не получается правильно дописать
допиши неправильно. потом исправь...
Palladin (2009-03-18 12:24:00) [19]что дописать?
igorntk (2009-03-18 12:20:00) [20]Не получается правильно дописать