Вниз
Скачать: CL | DM;

Вопрос по DBGrid-у Помогите пожалуйста.   Найти похожие ветки 

 
BGladiator   (2003-09-15 18:32) [0]

Здравствуйте. Вот в чём проблема: есть DBGrid - в нём несколько колонок, указан некоторый DataSource откуда и берутся данные. При печати печатаются все строки этого DBGrida. Мне же нужно чтобы печатались лишь выбранные. Для этого в запросе, который использ. для этого DBGrida я добавил ещё одно поле SELECTION - соответственно и втаблицу БД откуда выбираются данные тоже пришлось добавить такое же поле, в котором ничего не содержится (" "). Теперь при нажатии пробела сделал обработчик, который заносит в это поле произвольную метку ("X"). Теперь при печати печатаются только те строки в которых поле SELECTION имеет метку ("X").
Всё бы хорошо да только вот установка этих меток (особенно для нескольких строк) происходит слишком медленно. И ещё было проверено что во время установки этих меток, которые служат всего лишь для печати происходит UPDATE таблици в БД. Из-за чего при работе нескольких пользователей возникают блокировки.
Если кто-то знает как можно реализовать эти метки для печати проще пожалуйста подскажите. Если можно по подробнее, потому что перепробовал много вариантов - не выходит.
Заранее спасибо.


 
Without Any ... ©   (2003-09-15 18:46) [1]

По какому признаку выбираются строки для печати? Естественнее было бы правильно организовать Select или Filter. Иначе все остальное надумано.


 
BGladiator   (2003-09-15 19:03) [2]

Строки выбираются через Filter по полю SELECTION:
Filter := "SELECTION ="+"""X""";


 
MsGuns ©   (2003-09-15 20:14) [3]

А само это поле (SELECTION) нельзя "формировать" в событии OnFilterRecord ?
Если же вс-таки признак должен существовать как поле, используйте клиентский НД - там нет вообще ограничений.


 
BGladiator   (2003-09-15 20:20) [4]

MsGuns что за клиентский НД. Можно по подробнее, потому что опыт программирования на Delphi у меня небольшой.
Заранее спасибо.


 
MsGuns ©   (2003-09-15 20:28) [5]

Суть TClientDataSet (закладка DataAccess) в том, чтобы оторвать обработку и хранение данных. Другими словами, ты с помощью провайдера забираешь себе на клиента любые данные из базы, делаешь с ними что хочешь (в том числе дополняешь любыми "своими" виртуальными полями) и при этом иллюзия того, что ты работаешь с "нормальной" таблицей - т.е. тебе доступны все датасетские методы и события. Подробнее - читай сам. Честно говоря, в твоем случае я бы обошелся вообще без выкрутасов, но познание этого способа даст тебе универсальный инструмент в дальнейшем.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
8-18492
Sheng
2003-06-05 21:41
2003.10.06
Заливка фигуры текстурой


1-18412
Дмитрий
2003-09-25 15:35
2003.10.06
не вызывается событие OnDrowItem у TCombobox


14-18549
PVOzerski
2003-09-18 11:06
2003.10.06
Винч потерялся :^(


3-18231
jack128
2003-09-16 20:51
2003.10.06
странное поведение IbQuery


1-18464
aaZ69
2003-09-24 13:52
2003.10.06
Динамическое обращение к однотипным компонентам




   Наверх