![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтрация в 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)