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

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

Поиск в БД [D5, Paradox]


AlexLines ©   (2005-10-15 13:39:00) 

С помощью оператора Like, к примеру, можно найти точное слово или фразу, не точное слово - Like '%Иван%' (найдет Иванов, Иванова, Иванову и т.д., а каким образом можно найти фразы - Иванов Григорий Александрович, Иванову Григорию Александровичу, Ивановым Григорием Александровичем, ведь если написать
(Like '%Иван%') and (Like '%Григори%') and (Like '%Александрович%') эти слова в тексте поля мемо не будут найдены подряд, а в разных частях текста.

Например в начале текста 'Иванов Лев Львович' будет найден Иванов
В середине текста 'Василейского Геннадия Александровича' - Александрович
и т.д.

Спасибо


AlexLines   (2005-10-16 13:49:00) [1]


> Не много ли хочешь от Парадокса?

Почему много?


AlexLines   (2005-10-16 13:42:00) [2]


> На вопрос о сути хранимой в поле поиска информации отвечать
> не будем принципиально ?


В поле Memo размещены статьи из журнала. По ним и производится поиск


msguns   (2005-10-16 13:33:00) [3]

>AlexLines   (16.10.05 13:23) [15]

На вопрос о сутихранимой в поле поиска информации отвечать не будем принципиально ?


Anatoly Podgoretsky   (2005-10-16 13:25:00) [4]

Не много ли хочешь от Парадокса? Решай это на клиенте.


AlexLines   (2005-10-16 13:23:00) [5]

> Что за информация содержится в поле, где ищем: биография
> огурцов, милицейские протоколы о задержании кучи Ивановых
> и Петровых и т.д.

Вообще задача состоит в том, чтобы если пользователь набрал в строке поиска Иван* Александр* Григорьев*, то получил бы записи Иванов Александр Григорьевич, Иванову Александру Григорьевичу и т.д., однако не Иванов хороший человек, Александр Григорьевич тоже


msguns   (2005-10-16 13:11:00) [6]

>Павел ©   (16.10.05 13:01) [13]
>я же тебе написал используй символ "_" вот и все (работает, только что сам проверил) или напиши UDF

Беда не в том, что глупости говорим, а в том, что на них настаиваем.
В школу, в 3-й класс ! Вроде там падежи изучают ? Кроме того, как твой "универсальный" запрос разберется с грамматическими ошибками и "очепятками", коих, как известно, полно в любых достаточно обширных текстах. И как он справится с двумя пробелами или неполным указанием имени или отчества ? Или указанными не в том порядке ?

Я постю не потому, что охота поспорить с такими "советчиками", а потому, что имею опыт подобных проблем, когда надо выбирать упоминанияоб объекте, а не сами объекты, и могу с уверенностью сказать, что удовлетворительно проблема не решается одним запросом или UDF.
Решение есть, но оно вовсе не тривиальное.


Павел   (2005-10-16 13:01:00) [7]

AlexLines:
я же тебе написал используй символ "_" вот и все (работает, только что сам проверил) или напиши UDF


msguns   (2005-10-16 12:53:00) [8]

>Павел ©   (16.10.05 11:06) [9]
>почему? :)

Потому что пишем, не проверяя, фигню.

>AlexLines   (16.10.05 12:44) [10]

Дорогой, может неплохо бы уточнить  две вещи:

1. Что за информация содержится в поле, где ищем: биография огурцов, милицейские протоколы о задержании кучи Ивановых и Петровых и т.д.
2. Что все-таки ищем: любое упоминание о Иванове или конкретно ФИО как оно записано в паспорте ?

Где гарантия, что не напишут один раз  "Иванову Григорию Александровичу", в другой раз "Григорию Александровичу Иванову", а в третий вообще "Иванову Г.А."
И что мы найдем-то ?


Anatoly Podgoretsky   (2005-10-16 12:53:00) [9]

Используй обработчик OnFilterRecord


AlexLines   (2005-10-16 12:44:00) [10]


> LIKE '%Иван%Григори%Александрович%'

Проблема заключается в том чтобы оператор Like нашел Не все включение слова в поле, а именно Иванов Григорий Александрович (или чу). В том варианте который предлагаете вы  будет найдены записи такого вида: Иванов хороший работник, Григорий Александрович его поддерживает


Павел   (2005-10-16 11:06:00) [11]

почему? :)


msguns   (2005-10-16 10:13:00) [12]

>Павел ©   (16.10.05 10:05) [7]

не найдет ;)


Павел   (2005-10-16 10:05:00) [13]

не, это ему тоже не подойдет.

AlexLines:
надо использовать в выражении like символ _
например
like 'Иванов_ Григори_ Александрович' найдет:
Иванова Григория Александровича
Иванову Григорию Александровичу
Ивановы Григории Александровичи


msguns   (2005-10-16 09:48:00) [14]

LIKE '%Иван%Григори%Александрович%'


AlexLines   (2005-10-15 15:45:00) [15]

Пока не справляюсь с решением подобной задачи даже при помощи Help LocalSQL

Может быть кто-нибудь подскажет основные пути решения

Заранее благодарю


AlexLines   (2005-10-15 13:56:00) [16]

Сейчас поищу


Anatoly Podgoretsky   (2005-10-15 13:54:00) [17]

У тебя в комплекте есть справка по синтаксису LocalSQL


AlexLines   (2005-10-15 13:52:00) [18]

Да Анатолий. Я только изучаю SQL

Если можно хотя бы ссылку на статью и т.п.


Anatoly Podgoretsky   (2005-10-15 13:44:00) [19]

Ну так это не секрет даже, а просто основы.


Наверх

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