![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с большими обьемами данных [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]Как сделать Землю квадратной ?
Такие вопросы не мучают ?