| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Грамотный поиск записей |
| Автор: former 13.12.2006, 20:01 |
| Подскажите, пожалуйста, как организовать грамотный поиск при условии, что данные могут повторяться в разных записях. Необходимо получить список этих записей с указанием даннх из других полей этих записей (например, в ListView) и число найденных записей. |
| Автор: Rodman 13.12.2006, 20:11 | ||
Почитай про LIKE |
| Автор: former 13.12.2006, 20:30 | ||
Использую AbsoluteDB
Не понял! |
| Автор: Rodman 13.12.2006, 20:49 | ||
Пишешь запрос
И запускаешь его... Все строки в которіх в поле Field встречается Вася будут выведены.... |
| Автор: former 13.12.2006, 21:22 |
| Это понятно. Вопрос в другом. Я имею виду следующее. После выполнения поиска записей будет повляться окно (результаты поиска) в котором присутствует список найденных записей следующего вида: Допустим ищем текст 'абвгд' в поле 'поле 1'. Находим, допустим 5 записей. Теперь в появляется форма результатов поиска на которой находится Label с количеством найденных замисей и список типа ListView в котором заполнены колонки найденными записями. ListView имеет следующие колонки: 1) порядковый номер 2) 'поле 1' найденной записи 3) 'поле 2' тойже записи и так для всех пяти. Разжевал до безобразия. |
| Автор: Vas 13.12.2006, 21:59 |
| former, а почему обязательно ListView, чем DBGrid не устраивает или AbsoluteDB не свяжешь с гридом? |
| Автор: former 13.12.2006, 22:06 |
| Vas, DBGrid отображает все поля записи, а мне нужно всего два. |
| Автор: ТоляМБА 14.12.2006, 06:45 | ||
В Table1 может быть хоть 100 полей, но в гриде только 2 из селекта отобразятся |
| Автор: SergeBS 14.12.2006, 08:52 | ||
former,
А если зайти в Columns Editor? Для каждой колонки есть свойства visible, readonly и еще куча не менее полезных. Так что F1 и вперед |
| Автор: Akella 14.12.2006, 09:18 |
| а ещё кроме SQL можно использовать Locate, Lookup, TTable.Filter, событие OnFilterRecord короче возможностей для поиска, группировки и фильтрации масса... |
| Автор: former 14.12.2006, 20:14 | ||||
ТоляМБА, а как связать этот запрос с ListView? Я не то, что в SQL, я с БД только начинаю работать. Поэтому хотелоь бы увидеть код. Понятно, что использовать таблицу целесообразнее. Однако, я решил решил использовать ListView, т.к. хочу иметь пронумерованный список(1, 2, 3...n) найденных записей при щелчке по которым в главной форме появляется нужная запись. К тому же на против каждой записи будет стоять соответствующая иконка (в зависимости от типа найденной записи). Это упростит работу пользователя с результатами поиска. Поэтому, благодарю за советы Vas, ТоляМБА, SergeBS, Akella, но вариант с таблицей меня не устраивает. И ещё. Остаётся непонятным как определить количество найденных записей. Если бал бы ListView было бы проще. |
| Автор: skyboy 14.12.2006, 20:50 |
| former, у компонента - наследника TQuery есть свойство RowCount или RecordCount(не помню, чесно говоря) - это и есть количество записей в результате запроса. |
| Автор: former 15.12.2006, 07:55 |
| skyboy, спасибо. |
| Автор: SergeBS 18.12.2006, 12:18 |
| former, ListView будешь связывать с результатами, как нетрудно догадаться, ручками. Т.е. своими строчками кода. Это не DB-aware компонент. |
| Автор: Akella 18.12.2006, 14:32 | ||
что-то вроде этого
|
| Автор: former 27.12.2006, 20:50 | ||
Благодарю всех за помощь. Сделал, как посоветовали Akella и Mephisto, а для определения количества найденных записей использовал переменную типа integer.
|
| Автор: former 29.12.2006, 00:14 |
| Тема закрыта. |
| Автор: Mephisto 29.12.2006, 17:05 | ||
|