![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск в БД [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]Ну так это не секрет даже, а просто основы.