Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Like - Containing [D5, Paradox]


Dmitry Vyacheslavovich ©   (2004-06-01 21:40:00) 

Возникла следующая проблема. Имеется база данных, по запросам извлекающая необходимую информацию. Один из запросов выглядит следующим образом : 'select Name, Telefon, Adresse from main where Name like "'+TabSet1.Tabs.Strings[NewTab]+'%"'
 Однако необходимо, чтобы запрос был нечувствителен к регистру, тогда прочитал в Help`e, что можно использовать containing. Но при активации запроса программа выкидывает с сообщением "Capability not supported". В чём может быть проблема?          

                      С уважением Дмитрий.


Vlad   (2004-06-03 16:18:00) [1]


> тогда прочитал в Help`e, что можно использовать containing.
> Но при активации запроса программа выкидывает с сообщением
> "Capability not supported". В чём может быть проблема?  
>        

В каком Help'e  Вы это прочитали ? В LocalSql нету. Следовательно CONTAINING не поддерживается BDE.
Могу предложить след. выход:
создать доп. поле в таблице, куда писать то же, что и в исходном поле, только в верхнем регистре. Это позволит избежать фулскан.


Dmitry Vyacheslavovich   (2004-06-03 15:55:00) [2]

Да, горячая получилась полемика. Использовать фуллскан и правдо не хотелось бы. Пусть записей будет и немного (порядка нескольких тысяч), но могу представить в какие задержки это может вылиться. Хотелось бы всё-таки выяснить, что же не так с этим CONTAINING. Очень прошу что-нибудь добавить...


Sergey_Masloff   (2004-06-02 12:17:00) [3]

Sergey13 ©   (02.06.04 11:47) [13]
>ИМХО, категоричность плоха всегда,
Да знаю, знаю... А что поделать? ;-)


Sergey13   (2004-06-02 11:47:00) [4]

2Sergey_Masloff   (02.06.04 11:37) [12]
ИМХО, категоричность плоха всегда, а вот фулскан невсегда. Тут все зависит от деталей и конкретных условий.
Вот такой я филосОф. 8-)


Sergey_Masloff   (2004-06-02 11:37:00) [5]

Sergey13 ©   (02.06.04 10:30) [11]
Ну такой вот я... Веселый человек.  
И все равно к плохому лучше не привыкать а фулскан плохо.


Sergey13   (2004-06-02 10:30:00) [6]

2Sergey_Masloff   (02.06.04 10:21) [10]
>Да я по диагонали прочитал ;-)
При этом всех пожизненно расстреливая. 8-)


Sergey_Masloff   (2004-06-02 10:21:00) [7]

Соловьев ©   (02.06.04 09:57) [8]
>интересно какой такой сервер с Парадоксом?
Да я по диагонали прочитал ;-)


Sergey13   (2004-06-02 10:04:00) [8]

2Соловьев ©   (02.06.04 09:57) [8]
>интересно какой такой сервер с Парадоксом?
Парадоксальный. 8-)


Соловьев   (2004-06-02 09:57:00) [9]


> запросов хотя бы пара-тройка ты сервер в такой даун уложишь
> что мама не горюй...

интересно какой такой сервер с Парадоксом?


Johnmen   (2004-06-02 09:55:00) [10]

>Sergey_Masloff   (02.06.04 09:40) [5]

А никто никого не учил. Просто конкретно ответили на конкретный вопрос.

>Еще можно сделать ...

Еще можно много чего... Напр. велосипед собрать из подручного материала...:)


Sergey13   (2004-06-02 09:53:00) [11]

2Sergey_Masloff   (02.06.04 09:40) [5]
>За это пожизненный расстрел однозначно.
Че то ты раздухарился, ИМХО, в деле спасения сервера Парадокс. 8-)


Sergey_Masloff   (2004-06-02 09:40:00) [12]

Johnmen ©   (02.06.04 09:13) [3]
>И что дальше ?
Дальше вывод очевиден - хранить все данные в одном кейсе, а аппер он или лавер без разницы. Чтобы не травмировать чувствительных пользователей можно при выводе на экран делать InitCapFirst на клиенте (да и на сервере можно). Еще можно сделать индекс по функции но не везде поддерживается да и накладно может быть.
 Но учить такому:

 where Upper(Name)

За это пожизненный расстрел однозначно.


Anatoly Podgoretsky   (2004-06-02 09:22:00) [13]

В том, что not supported


Johnmen   (2004-06-02 09:13:00) [14]

>Sergey Masloff   (01.06.04 22:30) [2]
>Уж сколько раз твердили миру...

И что дальше ?


Sergey Masloff   (2004-06-01 22:30:00) [15]

>where Upper(Name) Like Upper("aBc")
Уж сколько раз твердили миру... Этот Upper(Name) => Гарантированный фуллскан. Если в таблице хотя бы пара миллионов записей а таких запросов хотя бы пара-тройка ты сервер в такой даун уложишь что мама не горюй...


Exciter   (2004-06-01 22:23:00) [16]


> Однако необходимо, чтобы запрос был нечувствителен к регистру


where Upper(Name) Like Upper("aBc")

Или вместо Upper пробуй UpperCase
Должно сработать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо