![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| borockov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.9.2012 Репутация: нет Всего: нет |
Здравствуйте. У меня такой вопрос. Есть бд access подключена к dbgrid через adoquery. В бд есть поле типа "Memo" мне надо реализовать поиск этому полю. Пробовал сделать через locate, не получилось попробовал через SQL все получается.
Но проблема в том что когда выполняется запрос и в БД находим "искомое" БД фильтруется и остаются только записи с искомым. А мне надо что бы БД не фильтровалась а записи в которых найдено "Искомое" как нибудь выделялась, например ячейка dbgrid окрашивалась в желтый цвет. Помогите пожалуйста, заранее спасибо! |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Ну вообще-то если к гриду подключён адоквери, то данные из него отображаться и будут. А что с locate не получилось?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| borockov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.9.2012 Репутация: нет Всего: нет |
Вот как то так было с locate. С текстовыми полями все работало отлично, но вот именно с полей "Memo" никак не хотел работать. |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
А если
? -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Задействуй событие ТDBGrid.OnDrawDataCell., в котором проверяй содержимое этого поля на соответствие или несооветствие своему условию. И в зависимости от результата проверки окрашивай ячейку в нужный цвет. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| borockov |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.9.2012 Репутация: нет Всего: нет |
Попробовал. Выскакивает ошибка "Не удается применить порядок сортировки". Где то в инете почитал что locate не может все таки работать с типом "Memo". Добавлено через 1 минуту и 26 секунд Спасибо! С раскрашиванием dbgrid я думаю проблем не будет, мне бы решить этот вопрос с фильтрацией БД. |
||||
|
|||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Какой именно вопрос? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| borockov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.9.2012 Репутация: нет Всего: нет |
когда выполняется запрос и в БД находим "искомое" БД фильтруется и остаются только записи с искомым. А мне надо что бы БД не фильтровалась а записи в которых найдено "Искомое" как нибудь выделялась, например ячейка dbgrid окрашивалась в желтый цвет. C выделением разобрался, осталось разобраться с фильтрацией. |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Мне пришло в голову только такое извращение: задать в таблице уникальной поле-ключ (впрочем, оно и так должно там быть). Найти значение с помощью Lookup, запомнить значение ключа для данной записи. А затем уже искать с помощью Locate, но в ключе.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| borockov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.9.2012 Репутация: нет Всего: нет |
В бд ключ есть, т.е после того выполнился запрос запомнить ключ и ещё раз пробежаться уже с Locate? Это сообщение отредактировал(а) borockov - 18.2.2013, 11:57 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Ну да, я о том же.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| borockov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.9.2012 Репутация: нет Всего: нет |
А как запоминать ключи? А если ключей будет несколько?
|
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Не понимаю зачем нужен отдельный поиск нужных записей?
Чем не годится мой первый совет? http://forum.vingrad.ru/index.php?showtopi...t&p=2548505 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 0 Всего: 7 |
Можно просто отключить перерисовку контролов, и пройтись по базе, любым текстовым поиском проверяя соответствие поля memo условиям. А для запоминания текущей позиции есть bookmark'и.
Я поиск в поле произвольного типа так сделал:
Если записей не слишком много, то скороть приемлемая. Это сообщение отредактировал(а) Beltar - 19.2.2013, 20:19 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |