Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с большими обьемами данных [D6, IB6.x]


Domkrat ©   (2002-11-12 12:14:00) 

Задача создать навигационную систему с исп. SQL.
Есть два запроса к одной мастер таблице, первый
состоит из одного поля(Primary-key), а второй
из всех полей. Эти два запроса связаны Master-Det
соотношением.

Навигация осуществляется по первому датасету, который
зараннее отфетчен. Посути происходят запросы к одной
записи во втором датасете, который содержит множество
Look-Up полей.

Все это сделано для ускорения работы т.к. таблица ~150 тыс!
И собственно вопрос: Как обновить первый датасет котороый содержит столбец из 150 тыс. записей при добавлении другим пользователем новой записи.
Метод Open->Close не приемлем т.к. он приводит к повторному
фетчению(Query.FetchAll).

Если есть умные дяди и тети, помогите пожалуйста.


Andriano   (2002-11-13 08:40:00) [1]

Большой объём данных и (FIRST, NEXT, LAST, FETCHALL) - ВЕЩИ НЕ СОВМЕСТИМЫЕ!. Это только первая проблема, с кот. ты столкнулся.
Надо опираться только на SQL и проблем не будет.


ЮЮ   (2002-11-13 08:33:00) [2]

>пользователю необходимо пройти все записи подрят
150 тыс. записей ? И после такого прохода он сможет правильно изменять данные?


Jeer   (2002-11-12 19:42:00) [3]

Не превращай пользователей в администраторов.
Задача update по условию гораздо проще решается


Domkrat   (2002-11-12 19:11:00) [4]

Это все весело, но помоему проблема насущная.
Т.к. DataSet т.к. DataSet позволяет получить
полный набор данных, что очень удобно для
перемещения по нему (First, Last и т.д.), я
думаю это надо использовать.
А как обновить данные не закрывая DataSet,
моя идея такая: ставлю тригер на Inset и через
Alerter шлю всем клиентам новый ID_(имеется еще
и отвлеченный ID который построен на тригере)
, который добавляется в их датасеты,
при этом конечно свойство CashUpdates:=True.
Получаем систему реального времени.

По поводу работай с теми записями которые
нужны:
пользователю необходимо пройти все записи
подрят из изменить какой либо реквизит.


ЮЮ   (2002-11-12 12:55:00) [5]

>Все это сделано для ускорения работы т.к. таблица ~150 тыс!

Для ускорения работы надо отбирать ровно столько записей, с которыми пользователь реально будет работать. И переоткрыть такой запрос не составит никакого труда :-)


Jeer   (2002-11-12 12:27:00) [6]

Как сделать Землю квадратной ?
Такие вопросы не мучают ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо