Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.25;
Скачать: CL | DM;

Вниз

Обратная связь   Найти похожие ветки 

 
Phoenix ©   (2009-09-01 08:22) [0]

Попробую вкратце описать задачу. У пользователя1 стоит клиентская программа которая отображает некоторый список данных. Другой пользователь2 забил какието данные и сохранил их. В этот момент у пользователя 1 список должен пополнится данными которые забил пользователь 2. Как подобное реализовать? Краем уха слышал что подобное можно зделать при трехзвенке , если такое и вправду реализуемо можно примерчик?


 
Mike Kouzmine   (2009-09-01 09:01) [1]

Пока не обновишь, не увидишь. База?


 
Sergey13 ©   (2009-09-01 09:13) [2]

> [0] Phoenix ©   (01.09.09 08:22)
> у пользователя 1 список должен пополнится

Почему должен то? Кому должен? Смысла в этом практически никакого. В 99.9% случаев.


 
Медвежонок Пятачок ©   (2009-09-01 09:26) [3]

Краем уха слышал что подобное можно зделать при трехзвенке

а я краем глаза видел, что пользователь №2 получает данные тогда, когда они ему реально становятся нужны


 
Phoenix ©   (2009-09-01 09:54) [4]

>>Почему должен то? Кому должен? Смысла в этом практически никакого. В 99.9% случаев.
В данном случае, пользователь1 должен увидеть что произошло некоторое изменение в данных и отреагировать на них.


 
Phoenix ©   (2009-09-01 09:56) [5]

Удалено модератором
Примечание: мат


 
Медвежонок Пятачок ©   (2009-09-01 10:08) [6]

В данном случае, пользователь1 должен увидеть что произошло некоторое изменение в данных и отреагировать на них.

Даже если он выключил программу и пошел пописать?


 
Sergey13 ©   (2009-09-01 10:13) [7]

> [4] Phoenix ©   (01.09.09 09:54)
> В данном случае

Опиши предметную область твоего "случая".

> [5] Phoenix ©   (01.09.09 09:56)

вот именно по программированию, потому за базаром следи.


 
Alf   (2009-09-01 10:22) [8]


> Phoenix ©   (01.09.09 08:22)  

Решение простое - бродкаст месседж


 
pavel_guzhanov ©   (2009-09-01 10:24) [9]

в базе делай триггер, который реагирует на изменения и выдает event. У пользователя1 программа реагирует на event и обновляет данные из базы.


 
Alf   (2009-09-01 10:26) [10]


> pavel_guzhanov ©   (01.09.09 10:24) [9]
> в базе делай триггер, который реагирует на изменения и выдает event.

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


 
Сергей М. ©   (2009-09-01 10:26) [11]


> пользователь1 должен увидеть что произошло некоторое изменение
> в данных и отреагировать на них


Например, настучать по репе пользователю2, который не спрося разрешения у пользователя1 взял да изменил тот же самый элемент списка, который пользователь1 в поте лица набирал целый час ?


 
Alf   (2009-09-01 10:28) [12]


> Сергей М. ©   (01.09.09 10:26) [11]

Эта проблема решаема очень просто


 
pavel_guzhanov ©   (2009-09-01 10:28) [13]


> > pavel_guzhanov ©   (01.09.09 10:24) [9]
> > в базе делай триггер, который реагирует на изменения и
> выдает event.
>
> Интересно - у него база умеет делать евенты :) или может
> вообще базы никакой нет...


Ну да, видимо надо было написать вначале "Если спользуется база, и она умеет делать эвенты..." :о)


 
Phoenix ©   (2009-09-01 10:33) [14]

Короче. Предметная область - приём заявок по техническому обслуживанию. Т.е пользователь забивает заявку на обслуживание. Как только он её забил и сохранил у системотехника должен появится "флажок" мол новая завка обрати внимание и обновится перечень заявок.
База Firebird 1.5


 
Ega23 ©   (2009-09-01 10:38) [15]


> Как только он её забил и сохранил у системотехника должен
> появится "флажок" мол новая завка обрати внимание и обновится
> перечень заявок.


Вот и запрашивай по таймеру - а не появилось ли новых заявок? Очень простой запрос, очень лёгкий. И если что-то пришло в БД новое - пусть у твоего "системотехника" в углу формы флажок моргает, типа аськи. А вот захочет он обновить у себя данные или нет - это уже исключительно его личное дело.


 
Сергей М. ©   (2009-09-01 10:40) [16]


> у системотехника должен появится "флажок" мол новая завка
> обрати внимание и обновится перечень заявок


Ну вот он увидел этот флажок, открыл перечень заявок и .. не увидел новую заявку ! Потому что юзер набив заявку тут же, скажем, уничтожил ее как ошибочную.. Что, еще один флажок вешать, типа ложная тревога ?)


 
Phoenix ©   (2009-09-01 10:45) [17]


> Вот и запрашивай по таймеру - а не появилось ли новых заявок?
>  Очень простой запрос, очень лёгкий. И если что-то пришло
> в БД новое - пусть у твоего "системотехника" в углу формы
> флажок моргает, типа аськи.

Рассматривал этот вариант но я вообще хотел узнать как можно реализовать вариант именно с обратной работой от сервера к клиенту, как это реализовать.

> Что, еще один флажок вешать, типа ложная тревога ?)

Нет. Пользователь не имеет возможности удалять заявку а только менять её статус, т.е если изменить статус на "ошибочная".


 
Сергей М. ©   (2009-09-01 10:52) [18]


> только менять её статус


Да какая разница ?
Все равно ложная тревога.

Ну а в целом, если не боишься что юзер и системотехник тебя поколотят за непродуманную логику, можешь задействовать механизм FB-ивентов, если его использование позволяют сетевые условия.


 
Ega23 ©   (2009-09-01 10:53) [19]


> Рассматривал этот вариант но я вообще хотел узнать как можно
> реализовать вариант именно с обратной работой от сервера
> к клиенту, как это реализовать.


Единственно универсальный способ - с клиента мониторить данные на сервере. Всякие триггера, UDP-рассылка и т.п. со стороны сервера, в общем случае, ненадёжны.
Как реализовывать мониторинг со стороны клиента - есть масса способов. Начиная от обновления по таймеру "всего" (отвратительный способ), обновление по таймеру только того, что произошло с момента последнего обновления, мониторинг изменений в БД с нотификацией пользователю и т.д.

З.Ы. Как только какая-то программа начинает себя из интернета обновлять без моего ведома, а также если у этой программы нет возможности отключения самообновления - я такую программу моментально сношу.


 
pavel_guzhanov ©   (2009-09-01 11:14) [20]

Firebird 1.5 может делать эвенты. Обрати внимание на

pavel_guzhanov ©   (01.09.09 10:24) [9]


 
Медвежонок Пятачок ©   (2009-09-01 11:37) [21]

Firebird 1.5 может делать эвенты. Обрати внимание на

Аха....
Юзер №1 ввел заявку.
Сработал евент.
Юзер номер два должен ее обработать.
Но он в это время ходил курить и программа была выключена.
Либо он ребутил комп во время этого самого евента.
Пришел он с покурки (или загрузил программу) - и где будет тот евент?


 
Сергей М. ©   (2009-09-01 11:43) [22]


> Пришел он с покурки .. - и где будет тот евент?


А поколотят-то в результате автора сего программного шедевра)



Страницы: 1 вся ветка

Текущий архив: 2009.10.25;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.024 c
10-1160553379
Alex_KV
2006-10-11 11:56
2009.10.25
Не паботает Invoke


15-1251132830
Igor5
2009-08-24 20:53
2009.10.25
переход по формам в случайном порядке


2-1251176475
id_984fa940
2009-08-25 09:01
2009.10.25
Проблема с очисткой компонента типа TValueListEditor


2-1251444270
Grant
2009-08-28 11:24
2009.10.25
Создать класс похожий на TStringList


15-1251484795
DeadMeat
2009-08-28 22:39
2009.10.25
Windows 7 и перезапись EXE файлов