![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TClientDataSet в действии
minstrel © (2004-05-27 17:21:00)День добрый!
Прошу проанализировать 2 пути решения и выбрать более оптимальный.
Имеется сервер приложений (SRVR), клиентские приложения (CLNT).
Пропускной канал между SRVR и CLNT не превышает 128KB.
Используется технология MIDAS. Доступ к данным из CLNT производится посредством TClientDataSet (CDS).
Есть таблица задающая некоторую древовидную структуру (DBCAT) и некоторый набор справочников, ссылающихся на эту таблицу.
Пример - таблица товаров (TOVARY) ссылается на DBCAT и, т.о., выделяются категории товаров.
2 варианта:
1) для таблицы товаров завести 1 CDS и использовать стандартный механизм докачки;
2) для каждой категории товаров завести отдельный CDS и иметь возможность использовать (или нет) докачку (вроде бы открывается возможность работать со справочником локально).
Для справочников весьма часты операции поиска, фильтрации, сортировки.
Будет ли выигрыш и можно ли его добиться при использовании подхода (2)?
Sandman25+1 (2004-05-28 08:59:00) [1]Посмотрите раздел Supporting state information in remote data modules в DevGuide: Developing Datapase Applications
minstrel (2004-05-27 18:34:00) [2]Может кто ответит (или скажет: "N-й метод однозначно лучше")...
есть таблица с данными поля ID=1..100;
CDS->PacketRecords = 20;
1) производится выборка из этой таблицы;
2) указавается условие в фильтре (ID>15 and ID<25);
3) указавается условие в фильтре (ID>14 and ID<24);
Сколько записей будет получено с сервера при 3-м обращении и сколько всего записей будет храниться на клиенте после 2-го шага,
после 3-го шага, после указания сортировки в обратном направлении?
minstrel (2004-05-27 17:40:00) [3]>Clickmaker:
если я буду менять sql-запрос, то докачка работать не будет.
>Sandman25+1:
справочники довольно велики, пользователей довольно много => хранить справочники локально вряд ли удастся.
нагрузка на сервер будет во втором случае на мой взгляд меньше, после полной выгрузки категории, TOracleDataSet (ODS) можено удалять а с CDS работать на стороне клиента, выполняя уже локально поиски, фильтры,.. Разве нет?
Sandman25+1 (2004-05-27 17:31:00) [4]Если количество категорий постоянно растет, то будет большая нагрузка на сервер в плане требований к памяти. Представьте себе 20 пользователей, для каждый из которых создано 30 clientdataset только для категорий...
Sandman25+1 (2004-05-27 17:31:00) [5]Кстати, справочники лучше сохранять локально и перечитывать по явному требованию.
Clickmaker (2004-05-27 17:28:00) [6]один CDS + фильтр по категории на уровне SQL запроса