Главная страница
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.015 c
1-18361
Vladislav
2003-09-22 16:24
2003.10.06
ScrollBox и onMouseWheel


4-18680
Bes
2003-07-31 04:47
2003.10.06
как через API отловить нажатие buttonа?


14-18601
_Nicola_
2003-09-19 12:43
2003.10.06
Пятница! Приколитесь...


14-18580
саша2
2003-09-18 11:44
2003.10.06
про них


1-18363
Alek Aaz
2003-09-21 12:46
2003.10.06
Не отображаются наследуемые методы и свойства.