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

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

Синхронизация данных [D6, MSSQL]


Страницы:   1 2

Volodya_ ©   (2004-04-28 10:03:00) 

Есть клиент-серверное приложение с которым работает много пользователей, которые вносят изменения. Как сделать чтобы при изменении одним пользователем измененения сразу было видно и другим пользователям? Используемые компоненты: AdoQuery, DBGrid


bushmen   (2004-04-28 12:52:00) [1]

>Курдль ©   (28.04.04 12:14) [36]
>Вы все сегодня обкурились с утра :(

А тебе только сейчас удалось курнуть? :)


Курдль   (2004-04-28 12:14:00) [2]

Вы все сегодня обкурились с утра :(


AntonVS   (2004-04-28 11:46:00) [3]

а вот в IB есть штука как POST_EVENT...

интересно наверно и в MSSQL есть что-нибудь такое...


AntonVS   (2004-04-28 11:40:00) [4]

а еще можно сделать так, чтоб клиент изменивщый данные посылал др. клиентам - типа я изменил там-то, то...

а для достоверности инфы обязательно - тригер простенький - типа, если не хватает кол-ва бил-тов, - нету столько билетов, извиняй

а еще дополнительно для достоверности на таймер можно постатвить, но только так, чтоб не очень часто...

и вообще, что вы пугаетесь по поводу загруженности трафика?
в TADOQuery и т.д., если не ощибаюсь, хорошо продуман механизм кеширования, т.е. не скачает лишнего..., трафик не забьет.


P_Aleks   (2004-04-28 11:39:00) [5]

В этих данных:
Есть id записи, какой-то тип записи- название таблицы, или
тип отчета (здесь надо определится самому - по какому критерию
устанавливать какой отчет должен будет обновиться),
Дата обновления

В клиенте например по таймеру делать выборку из этой таблицы.
(выбрать все записи позже опр времени) А потом по типу
обновлять конкретную запись.

Ясное дело, что отчет должен хранить в себе id - записи.


Sergey13   (2004-04-28 11:36:00) [6]

2Volodya_
А велик ли нужный датасет?


Ega23   (2004-04-28 11:36:00) [7]

Ну допустим я знаю что изменилось, как обновить только те записи которые поменялись?

Изменить резалтсет.
Не пользуйся большими тяжёлыми выборками, у тебя фактически должны приходить данные по КОНКРЕТНОМУ рейсу на КОНКРЕТНУЮ дату. Это не так много записей. А волочить ВСЕ возможные, а потом вносить в эту выборку единичные изменения - мартышкин труд и глупость полная.


Ega23   (2004-04-28 11:30:00) [8]

Тогда см. [12]. Лично я сделал бы так.


Volodya_   (2004-04-28 11:30:00) [9]

P_Aleks ©   (28.04.04 11:18) [26]

Ну допустим я знаю что изменилось, как обновить только те записи которые поменялись?


Volodya_   (2004-04-28 11:23:00) [10]

Ega23 ©   (28.04.04 11:15) [23]

Да


bushmen   (2004-04-28 11:19:00) [11]

>Пользователь жмёт кнопочку врямя от времени на определённых >записях и выполняется скрипт который именяет данные, в гриде ж >эти изменения не видны, нужно както обновить

Ну вот для этого пользователяи рефреш данные после выполнения скрипта.


P_Aleks   (2004-04-28 11:18:00) [12]

Может попробывать систему сообщений к серваку прикрепить.
Т.е таблицу в которую будет кидаться ин-фа о изменениях в других таблицах(по тригеру например). Потом из этой таблицы читать клиентом и-ю о том, что надо обновить. Правда к готовой штуке такое приделать сложно будет.


Плохиш   (2004-04-28 11:18:00) [13]


> Volodya_   (28.04.04 11:13) [22]
> Пользователь жмёт кнопочку врямя от времени на определённых
> записях и выполняется скрипт который именяет данные, в гриде
> ж эти изменения не видны, нужно както обновить

А начиналось всё так красиво про авиакассы :-)

Так обнови свои данные после выполнения скрипта!


Sergey13   (2004-04-28 11:18:00) [14]

Volodya_   (28.04.04 11:13) [22]
А через датасет менять данные не пробовал?


Ega23   (2004-04-28 11:15:00) [15]

Volodya_   (28.04.04 11:13) [22]

Ничего не понял.
Есть один набор данных, а пользователь время от времени получает изменения к этому набору, так что-ли?


Volodya_   (2004-04-28 11:13:00) [16]

Ega23 ©   (28.04.04 11:06) [21]

Пользователь жмёт кнопочку врямя от времени на определённых записях и выполняется скрипт который именяет данные, в гриде ж эти изменения не видны, нужно както обновить


Ega23   (2004-04-28 11:06:00) [17]

Volodya_   (28.04.04 11:02) [18]

А что такое по-твоему частое запускание скрипта и получения резалтсета? Не рефреш?


Reindeer Moss Eater   (2004-04-28 11:02:00) [18]

Автоматическое обновление - это на самом деле принятие решения о допустимости продажи билета на клиенте, а не на сервере.

А это - неправильно.


Курдль   (2004-04-28 11:02:00) [19]

О чем базар? Сдается мне, что все больше об ошибках в проектировании БД. Если грамотно расписать модель и реализовать продажу на процедурах (чтобы не вносить задержку из-за трафика сети), то никаких проблем не будет. Ведь все из вас работали с генераторами (последовательностями) и наверняка никогда их уникальный номер не повторился!


Volodya_   (2004-04-28 11:02:00) [20]

Хорошо такой пример:
Со своей проги я запускаю скрипт который делает изменения в базе, этот скрипт может запускаться очень часто ... после каждого выполенния скрипта мне нужно видеть эти изменения. Думаю что рефреш мне полностьью не подходить, он может не успевать делаться.

Кто что может сказать ещё по resync?


Страницы:   1 2

Наверх

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