| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Как сделать Reload БД? |
| Автор: borockov 17.2.2013, 21:15 | ||
Здравствуйте. У меня такой вопрос. Есть бд access подключена к dbgrid через adoquery. В бд есть поле типа "Memo" мне надо реализовать поиск этому полю. Пробовал сделать через locate, не получилось попробовал через SQL все получается.
Но проблема в том что когда выполняется запрос и в БД находим "искомое" БД фильтруется и остаются только записи с искомым. А мне надо что бы БД не фильтровалась а записи в которых найдено "Искомое" как нибудь выделялась, например ячейка dbgrid окрашивалась в желтый цвет. Помогите пожалуйста, заранее спасибо! |
| Автор: Данкинг 17.2.2013, 22:58 |
| Ну вообще-то если к гриду подключён адоквери, то данные из него отображаться и будут. А что с locate не получилось? |
| Автор: borockov 17.2.2013, 23:11 | ||
Вот как то так было с locate. С текстовыми полями все работало отлично, но вот именно с полей "Memo" никак не хотел работать. |
| Автор: Данкинг 17.2.2013, 23:34 | ||
А если
? |
| Автор: borockov 18.2.2013, 00:08 | ||||||||
Попробовал. Выскакивает ошибка "Не удается применить порядок сортировки". Где то в инете почитал что locate не может все таки работать с типом "Memo". Добавлено через 1 минуту и 26 секунд
Спасибо! С раскрашиванием dbgrid я думаю проблем не будет, мне бы решить этот вопрос с фильтрацией БД. |
| Автор: northener 18.2.2013, 01:48 |
Какой именно вопрос? |
| Автор: borockov 18.2.2013, 09:42 | ||
когда выполняется запрос и в БД находим "искомое" БД фильтруется и остаются только записи с искомым. А мне надо что бы БД не фильтровалась а записи в которых найдено "Искомое" как нибудь выделялась, например ячейка dbgrid окрашивалась в желтый цвет. C выделением разобрался, осталось разобраться с фильтрацией. |
| Автор: Данкинг 18.2.2013, 10:35 |
| Мне пришло в голову только такое извращение: задать в таблице уникальной поле-ключ (впрочем, оно и так должно там быть). Найти значение с помощью Lookup, запомнить значение ключа для данной записи. А затем уже искать с помощью Locate, но в ключе. |
| Автор: borockov 18.2.2013, 11:56 | ||
В бд ключ есть, т.е после того выполнился запрос запомнить ключ и ещё раз пробежаться уже с Locate? |
| Автор: Данкинг 18.2.2013, 15:56 |
| Ну да, я о том же. |
| Автор: borockov 18.2.2013, 17:37 |
| А как запоминать ключи? А если ключей будет несколько? |
| Автор: northener 18.2.2013, 18:27 |
| Не понимаю зачем нужен отдельный поиск нужных записей? Чем не годится мой первый совет? http://forum.vingrad.ru/index.php?showtopic=362534&view=findpost&p=2548505 |
| Автор: Beltar 19.2.2013, 19:52 | ||
| Можно просто отключить перерисовку контролов, и пройтись по базе, любым текстовым поиском проверяя соответствие поля memo условиям. А для запоминания текущей позиции есть bookmark'и. Я поиск в поле произвольного типа так сделал:
Если записей не слишком много, то скороть приемлемая. |