![]() |
|
|
![]()
|
|
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Подскажите, пожалуйста, как организовать грамотный поиск при условии, что данные могут повторяться в разных записях. Необходимо получить список этих записей с указанием даннх из других полей этих записей (например, в ListView) и число найденных записей.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 22 Всего: 122 |
Почитай про LIKE |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Использую AbsoluteDB
Не понял! -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 22 Всего: 122 |
Пишешь запрос
И запускаешь его... Все строки в которіх в поле Field встречается Вася будут выведены.... |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Это понятно. Вопрос в другом. Я имею виду следующее. После выполнения поиска записей будет повляться окно (результаты поиска) в котором присутствует список найденных записей следующего вида:
Допустим ищем текст 'абвгд' в поле 'поле 1'. Находим, допустим 5 записей. Теперь в появляется форма результатов поиска на которой находится Label с количеством найденных замисей и список типа ListView в котором заполнены колонки найденными записями. ListView имеет следующие колонки: 1) порядковый номер 2) 'поле 1' найденной записи 3) 'поле 2' тойже записи и так для всех пяти. Разжевал до безобразия. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
former, а почему обязательно ListView, чем DBGrid не устраивает или AbsoluteDB не свяжешь с гридом?
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Vas, DBGrid отображает все поля записи, а мне нужно всего два.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
В Table1 может быть хоть 100 полей, но в гриде только 2 из селекта отобразятся |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
former,
А если зайти в Columns Editor? Для каждой колонки есть свойства visible, readonly и еще куча не менее полезных. Так что F1 и вперед |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
а ещё кроме SQL можно использовать Locate, Lookup, TTable.Filter, событие OnFilterRecord
короче возможностей для поиска, группировки и фильтрации масса... |
|||
|
||||
| former |
|
||||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
ТоляМБА, а как связать этот запрос с ListView? Я не то, что в SQL, я с БД только начинаю работать. Поэтому хотелоь бы увидеть код. Понятно, что использовать таблицу целесообразнее. Однако, я решил решил использовать ListView, т.к. хочу иметь пронумерованный список(1, 2, 3...n) найденных записей при щелчке по которым в главной форме появляется нужная запись. К тому же на против каждой записи будет стоять соответствующая иконка (в зависимости от типа найденной записи). Это упростит работу пользователя с результатами поиска. Поэтому, благодарю за советы Vas, ТоляМБА, SergeBS, Akella, но вариант с таблицей меня не устраивает. И ещё. Остаётся непонятным как определить количество найденных записей. Если бал бы ListView было бы проще. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
former, у компонента - наследника TQuery есть свойство RowCount или RecordCount(не помню, чесно говоря) - это и есть количество записей в результате запроса.
|
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
skyboy, спасибо.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
former,
ListView будешь связывать с результатами, как нетрудно догадаться, ручками. Т.е. своими строчками кода. Это не DB-aware компонент. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
что-то вроде этого
|
|||
|
||||
| Mephisto |
|
||||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: нет Всего: 34 |
skyboy,
Только он всегда будет возвращать 1, если не двусторонний select!!!!!! Т.е. необходмо количество записей узнавать отдельным запросом, либо вообще использовать тот пример что Akella написал. Как по мне боле уместно! Только нужно будет написать:
Это сообщение отредактировал(а) Mephisto - 20.12.2006, 10:19 |
||||
|
|||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Благодарю всех за помощь. Сделал, как посоветовали Akella и Mephisto, а для определения количества найденных записей использовал переменную типа integer.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Тема закрыта.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: нет Всего: 34 |
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |