Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Фильтрация в DataSet [D7]


Bew ©   (2006-10-05 05:07:00) 

Пытаюсь вывести в DBGrid не базу данных, а TList из MyRecord (Ну, или массив какой-нибудь, это не важно), причём с возможностью редактирования стандартными методами (типа MyDataSet.Insert, Post, Edit, etc). Для реализации я решил написать потомка TDataSet. Пока у меня получилось сделать просмотр и изменение записей. А вот фильтрацию реализовать не выходит.
Пытался копать борландовские исходники TTable, однако для понимания сабжа интеллекта у меня маловато ;) Общий смысл, вроде бы, такой: в GetRecord смотрим, удовлетворяет ли текущая запись фильтру и либо всё ок, либо берём следующую. Внимание, вопрос: какой собственно метод производит проверку соответствия фильтру? Как его прикрутить к моему DS?


Bew   (2006-10-13 03:42:00) [1]

Вопрос решён. Всем спасибо!


Bew   (2006-10-06 21:15:00) [2]

Мне нужен не готовый компонент, а инфа по сабжу. Я ж не спрашивал "Где взять компонент".


Desdechado   (2006-10-06 11:13:00) [3]

> А CDS - хороший вариант, только dll потом таскать.
Не нужно ничего таскать. MidasLib можно линковать в программу, причем он нужен только для провайдера.


Сало   (2006-10-06 11:03:00) [4]

Возьмите VirtualTree и не мучайтесь.
Убогие dataset-ы должны умереть.


Stanislav   (2006-10-06 08:54:00) [5]

atruhin ©   (05.10.06 18:27) [6]

А там можно и базу и не базу.
Переключается DBTableView на TableView.


atruhin   (2006-10-05 18:27:00) [6]

При чем тут
> в cxGRID все реализовано

автор писал:

> Пытаюсь вывести в DBGrid не базу данных, а TList из MyRecord


Stanislav   (2006-10-05 17:33:00) [7]

в cxGRID все реализовано, и сортировки и фильтрация и т.д.


atruhin   (2006-10-05 17:28:00) [8]

> Не слушайте atruhin © (05.10.06 06:44) [1] - он дает очень
> вредный совет.

А где я даю совет, по поводу:

> TClientDataSet придуман и для этих целей тоже

Вроде я отговаривал, от я решил написать потомка TDataSet
А CDS - хороший вариант, только dll потом таскать.


dr Gonzo   (2006-10-05 11:16:00) [9]

Соответствие фильтру определяет уже пользователькомпонента, определяя это в событии

OnFilterRecord(DataSet: TDataSet; var Accept: Boolean)

Cоветую посмотреть исходники RxLib TRxMemoryData, реализацию методов: RecordFilter и GetRecord.

P.S. Писать свое всегда полезно, пускай это и хуже чем у других - преобретается очень хороший опыт.


MsGuns   (2006-10-05 10:42:00) [10]

TClientDataSet придуман и для этих целей тоже. Причем он существенно мощнее "деддушки" TDataSet ;))

Не слушайте atruhin © (05.10.06 06:44) [1] - он дает очень вредный совет.


atruhin   (2006-10-05 06:44:00) [11]

А зачем это писать, в сети масса компонент подобного рода, написанных довольно качественно. Ты думаешь что сделаешь лучше?
Бесплатные: kbmMemTable, еще http://www.stikriz.narod.ru/sourses.htm
Платные: TMemTableEh (www.Ehlib.com)


Наверх

Титульная страница Поиск, карта сайта Написать письмо