Есть таблица, в ней поле типа мемо.
Стоит задача: Найти записи у которых в "Memo" присутствуют заданные слова.
Самое простое — просто прыгать с записи на запись и в каждом мемо искать текст, пока не найдено. Но как бы сказать, медленно ADO работает. Пишу программу в среде Delphi 6.
Подскажите как реализовать поиск, более-менее быстрый в данных условиях.
Здравствуйте, ErRoR, Вы писали:
ERR>Есть таблица, в ней поле типа мемо.
ERR>Стоит задача: Найти записи у которых в "Memo" присутствуют заданные слова.
ERR>Самое простое — просто прыгать с записи на запись и в каждом мемо искать текст, пока не найдено. Но как бы сказать, медленно ADO работает. Пишу программу в среде Delphi 6.
ERR>Подскажите как реализовать поиск, более-менее быстрый в данных условиях.
В SQL есть специальный оператор для таких случаев. Пример поиска слов Вася и Маша в поле Text:
select * from myTable where Text like '%Вася%Маша%'
Примечание: такой код найдет только такие тексты, где есть оба слова, и где Маша упомянута
после Васи.
Примечание 2: like поддерживает 2 специальных символа — '_' (сопоставляется одному любому символу) и '%' (сопоставляется любому количеству любых символов). Работает все так же, как файловые маски. Маска "*.ar?" превратится в "%.ar_".
Примечание 3: Запросы с like плохо поддаются оптимизации. Во многих СУБД поддерживаются нестандартные расширения для более быстрого и сложного поиска слов в текстах. Название технологии, как правило, включает термин "full-text".
... << RSDN@Home 1.1.4 beta 4 rev. 347>>