Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2008, 22:27   #1
KAZAKH
Новичок
Джуниор
 
Аватар для KAZAKH
 
Регистрация: 03.06.2008
Сообщений: 2
Восклицание Поиск слова в поле типа МЕМО БД PARADOX

В БД PARADOX в поле text (MEMO) я храню текстовую информацию довольно больших размеров.

И мне нужно найти записи в которых встречается определенное слово.

Я делаю такой запрос:

SELECT * FROM issbnu.db
WHERE id>0
AND text LIKE '%слово_для_поиска%'

Но не все слова находит этот запрос....
Почему без понятий....
Кто сталкивался с этой проблемой подскажите пожалуйста.

Или мне использовать поле др. типа? Или другой вид поиска мне нужен?
KAZAKH вне форума Ответить с цитированием
Старый 04.06.2008, 06:39   #2
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Поле типа Memo представляет из себя символьную запись произвольного (часто очень большого) размера. Например, у меня в книге по Foxpro для Windows написано, что содержимое Memo поля не ограничено по объему и фактический объем данных, которые можно ввести в поле данного типа, определяется объемом жесткого диска компьютера.

Это теория. Теперь попытемся сделать из нее выводы.

1. Раз поле не ограничено по объему, то при запросе с поиском по этому полю, скорее всего, участвует не вся информация, содержащаяся в поле, а какая-то ее часть (я предполагаю, что это первые 254 символа).

2. Это поле не может использоваться в операциях поиска и сортировки таблицы.

В таких полях я обычно храню подробную информацию по теме, а поиск осуществляю по полям другого типа, например, строковым. Только после того как нужная запись найдена, пользователь может ознакомиться с содержанием Memo поля.

Если вам нужно организовать поиск по ключевым словам, лучше создать строковое поле, содержащее только эти ключевые слова, и осуществлять поиск по нему.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 05.06.2008, 07:22   #3
KAZAKH
Новичок
Джуниор
 
Аватар для KAZAKH
 
Регистрация: 03.06.2008
Сообщений: 2
По умолчанию

Спасибо Вам Андрей! Я так и думал что поиск осуществляется только по первым 255 символам, а остальная часть просто отбрасывается...

У меня есть догадка как можно сделать полноценный вопрос, но чтобы реализовать, я слишком молод и потому не разумен...

Я думал использовать указатели в памяти, не знаю правильно ли это.
KAZAKH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
КАК НА АВТОМАТЕ ДОБАВИТЬ ПОЛЕ В ФАЙЛ DB (Paradox) grenles БД в Delphi 7 07.05.2012 07:56
Поиск в мемо Marsik Помощь студентам 15 22.06.2008 11:28
Поиск 'Слова' JakSon Работа с сетью в Delphi 1 20.04.2008 00:13
Вставка записи в поле графического типа Bibigul БД в Delphi 3 10.04.2007 16:07