аналог TDBGrid в MFC
От: PhantomIvan  
Дата: 14.04.04 03:54
Оценка:
Есть ли аналог сетке (таблице) из дельфийского VCL (TDBGrid) для представления данных из БД в MFC?
Re: аналог TDBGrid в MFC
От: suffiks  
Дата: 14.04.04 07:22
Оценка:
Здравствуйте, PhantomIvan, Вы писали:

PI> Есть ли аналог сетке (таблице) из дельфийского VCL (TDBGrid) для представления данных из БД в MFC?


Есть ActiveX элементы типа MSFlexGrid и DBGrid которые нужно поместить на форму.
Но я так и не разобрался с ними. Я сделал свой клас наследник от CListCtrl. В нем отображал содержимое базы, а по по дабл-клику на любой subitem показывал динамически создаваемый EditBox запоминал текст и передавал в базу. А выбраный екстенд-стиль CListControl-a : LVS_EX_GRIDLINES придавал моему контролу полное сходство с гридом.
Re[2]: аналог TDBGrid в MFC
От: PhantomIvan  
Дата: 14.04.04 19:10
Оценка:
Здравствуйте, suffiks, Вы писали:

S>Есть ActiveX элементы типа MSFlexGrid и DBGrid которые нужно поместить на форму.

S>Но я так и не разобрался с ними. Я сделал свой клас наследник от CListCtrl. В нем отображал содержимое базы, а по по дабл-клику на любой subitem показывал динамически создаваемый EditBox запоминал текст и передавал в базу. А выбраный екстенд-стиль CListControl-a : LVS_EX_GRIDLINES придавал моему контролу полное сходство с гридом.

Но ведь в таком случае следует реализовывать сложное поведение наследника CListCtrl при прокрутке (нельзя же грузить большие выборки прямо в него сразу (памяти не напасешься...)?
Re[3]: аналог TDBGrid в MFC
От: Аноним  
Дата: 15.04.04 05:31
Оценка:
Здравствуйте, PhantomIvan, Вы писали:

PI>Но ведь в таком случае следует реализовывать сложное поведение наследника CListCtrl при прокрутке (нельзя же грузить большие выборки прямо в него сразу (памяти не напасешься...)?


Логично. Тогда остаются перечисленные ранее OCX-ы...
Re[3]: аналог TDBGrid в MFC
От: suffiks  
Дата: 15.04.04 06:02
Оценка:
Здравствуйте, PhantomIvan, Вы писали:

PI>Но ведь в таком случае следует реализовывать сложное поведение наследника CListCtrl при прокрутке (нельзя же грузить большие выборки прямо в него сразу (памяти не напасешься...)?


Чесно говоря не думал над этим. Но полагаю стоит обратиться к описанию класса CListCtrl по вопросу — сколько элементов максимально можно помещать в его список.
(Если что то найдешь — напиши. мне тоже интересно :))
Re: аналог TDBGrid в MFC
От: Micle  
Дата: 15.04.04 08:48
Оценка:
Здравствуйте, PhantomIvan, Вы писали:

PI> Есть ли аналог сетке (таблице) из дельфийского VCL (TDBGrid) для представления данных из БД в MFC?


Посмтри здесь:
http://www.firststeps.ru/mfc/steps/r.php?364
Re[4]: аналог TDBGrid в MFC
От: Аноним  
Дата: 15.04.04 12:34
Оценка:
Здравствуйте, suffiks, Вы писали:

S>Чесно говоря не думал над этим. Но полагаю стоит обратиться к описанию класса CListCtrl по вопросу — сколько элементов максимально можно помещать в его список.


Я использовал ListCtrl в режиме виртуального списка — отображал 20 000 без тормозов. Говорят что и 1 000 000 таким методом отображать можно.. Помоему даже читал про это на rsdn в статьях.
Re[4]: аналог TDBGrid в MFC
От: PhantomIvan  
Дата: 16.04.04 05:39
Оценка:
Здравствуйте, suffiks, Вы писали:

S>Чесно говоря не думал над этим. Но полагаю стоит обратиться к описанию класса CListCtrl по вопросу — сколько элементов максимально можно помещать в его список.

S>(Если что то найдешь — напиши. мне тоже интересно

Учитывая заметку об виртуальных лист контролах, я попробую сначала выписать код именно для этого класса. Думаю на следующей неделе сделаю. Смогу привести код или просто рассказать как все-таки сделал. В конце следующей недели найди этот топик на форуме.
Re[4]: аналог TDBGrid в MFC
От: screw_cms Россия ICQ: 168185721
Дата: 16.04.04 06:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, PhantomIvan, Вы писали:


PI>>Но ведь в таком случае следует реализовывать сложное поведение наследника CListCtrl при прокрутке (нельзя же грузить большие выборки прямо в него сразу (памяти не напасешься...)?


А>Логично. Тогда остаются перечисленные ранее OCX-ы...


Я реализовывал аналогичное поведение с помощью ALXGrid + Кэшируюший рекордсет (Потомок CRecordset), считывающий данные порциями, по мере обращения к ним. Кэширующий рекордсет пишется, отсилы, за полдня. Открытие таблицы с 2 млн. записей занимало ~1-2 сек. (Oracle). Можно, как уже советовали, ипользовать CListCtrl в режиме виртуального списка + кеширующий рекордсет.
When in doubt, use brute force. © Ken Thompson

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.