Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.06;
Скачать: 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 вся ветка

Текущий архив: 2003.10.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
9-18210
Griffen
2003-04-02 07:22
2003.10.06
Sun flare в DirectX 8.0


7-18653
stkatch
2003-07-22 10:06
2003.10.06
MessageBox и другие визуальные компоненты Windows в сервисах


1-18294
Vt
2003-09-24 07:16
2003.10.06
Мастера почему не работает процедура Close. На onShow


9-18212
Psibug
2003-04-01 10:34
2003.10.06
Глюк в NVIDIA OpenGL или ещё где


14-18567
malkolinge
2003-09-18 00:59
2003.10.06
С Днем Рождения , Гоблин !