Главная страница
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.017 c
1-18357
Olivka
2003-09-23 09:40
2003.10.06
Чем заменить DirectoryExists (платформо-независимую бы)?


6-18514
3APA3A
2003-08-07 22:11
2003.10.06
Свободный порт


6-18493
spogi
2003-08-11 03:01
2003.10.06
клиент-сервер + сокеты...


4-18681
D ick
2003-07-31 14:09
2003.10.06
Редактор памяти


1-18301
ghg
2003-09-24 08:51
2003.10.06
получение имени файла запустившего приложение