Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > Поиск в dbmemo |
Автор: Timurrr 22.5.2006, 20:58 |
У мя есть база в dbgride указаны названия товара, а в dbmemo его свойства по-строчно, как мне найти енто свойство в dbmemo введенного в edit по всей базе и вывести в dbgrid найден товар. Подскажите плз |
Автор: vv3 22.5.2006, 23:10 | ||
Надо так понимать, что в DBMemo выводится BLOB, в котором написано что-то вроде: "мокрый, синий, старый", а в Edit ввели "синий" и нужно найти строки в базе данных, в блоюах которых есть это слово? Если это так, то база совершенно неверно построена (см."нормализация"). Но и так можно, хотя в случае использования клиент-серверной архитектуры просто неверный подход. Сервер помрет, пока отфетчит все записи да со всеми блобами. В случае локальных баз - фиг с ними. Решение приблизительно такое: 1. Открываем запрос, в котором выбираются все интересующие нас поля и BLOB 2. Перебираем все BLOB'ы построчно на предмет вхождения слова, введенного в Edit и собираем их первичные ключи в строку через запятую 3. Запускаем запрос, в параметре которого пропишем внаглую нашу строку в скобках в секции WHERE... IN() И радуемся жизни... Конкретнее:
Разумеется, в DBMemo выводить в Query1 и не нужно, но StringList и LoadFromStream напишешь уже сам... В общем, простора для фантазии хватает. Кстати, а что будет, если в Edit написано "метро"? Тогда в выборку попадут и "метро", и "метрополитен", и "метровый" и "диаметром семь миллиметров".... ![]() |
Автор: vv3 23.5.2006, 09:09 |
Точно, LIKE красивее и короче... Что-то я накрутил. Прошу мой пост (в части кода) считать отсутствующим... Невыспался. Но с поиском по блобу... ой-ей-ей |
Автор: Timurrr 23.5.2006, 15:48 |
а можно сделать енто без sql? |
Автор: Vas 24.5.2006, 07:31 |
А смысл? |
Автор: Maiwend 25.5.2006, 07:37 |
Потому как человек, не умеет с квери работать. Надо учиться ;) Может мне кто подскажет с моей проблемой http://forum.vingrad.ru/index.php?showtopic=97532 А то учу квери и никто подсказать нехочет. |
Автор: lexsedrex 25.5.2006, 08:43 |
вот как я ето делал, поиск с частичным совпадением, тянем параметр поиска с едита adoQuery1.SQL.close; adoQuery1.SQL.Clear; adoQuery1.SQL.Text:='select параметр from таблица where параметр like '+QuotedStr('%'+edit13.Text+'%') ; adoQuery1.open; |
Автор: Timurrr 26.5.2006, 18:04 |
я делаю, но не получается, у кого есть пример скиньте исходник плз... |