Здравствуйте, LG, Вы писали:
M>>На самом деле вариантов всего два: M>>1. Если приложение чистый клиент-сервер, то периодический опос базы на предмет изменений.
опрос-опросу рознь ...
например, если надо узнать об изменениях 1-й записи, то можно timestamp использовать ...
считал, запомнил timestamp ...прошло время... запросил только timestamp — если изменился, то перечитал данные.
Но если у тебя прога и для mdb и для MS SQL Server, то использовать timestamp уже ...
Re[7]: Как реализовано динамическое обновление данных в прил
KGP>MS SQL Server, поддерживая тип поля timestamp, даёт пользователю возможность узнать изменял ли кто запись за время 'от чтения этого поля записи ранне до текущего чтения'. KGP>Это не контроль целостности и не прямое оповещение, а контроль за изменениями записи, а точнее обновление поля при любом изменении записи. KGP>И за этим следит СЕРВЕР (можно и в триггере на UPDATE повесить свою реализацию ~timestamp, но всё равно это работа СЕРВЕРА, а не среднего звена в данном случае. KGP>При репликациях это необходимая работа.
Не, ты точно чего-то путаешь...
timestamp — это совершенно другой механизм, который к внешним приложениям имеет очень мало отношения, а уж к данной теме вообще никаким боком.
Когда timestamp на сервере меняется, сервер не бегает за всеми клиентами и не кричит "Мужики, у меня данные поменялись, обновляйтесь по бырому!".
Просто у клиента есть возможность определить самому менялись ли данные, а сервер просто их меняет, ну до кучи еще увеличивает timestamp никому об этом не говоря, а если вдруг какому-то клиенту стало интересно, то пусть сам придет и проверит, поменялись данные или нет.
А здесь обсуждается как сделать и надо ли делать так, чтобы сервер сам извещал клиентов о том, что данные поменялись.
Возможно я немного не ясно излагаю свои соображения, но это казалось мне очевидным.
Мы уже победили, просто это еще не так заметно...
Re[8]: Как реализовано динамическое обновление данных в прил
Вы очень категоричны в своих суждениях.
Например, в SQL Server есть механизм алертов, при помощи которого именно СЕРВЕР, сообщает(нотифицирует) клиентов.
И в принцепе, дело ли сревера или нет нотифицировать клиентов о чем бы то ни было, это зависит от конкретной задачи.
Useless lamer
Re[9]: Как реализовано динамическое обновление данных в прил
Здравствуйте, Vitaton, Вы писали:
V>Вы очень категоричны в своих суждениях.
Возможно.. Жизнь такая..
Просто я уверен в свой правоте, а уважаемый KGP, видимо немного не до понял сути обсуждения, вероятно, в том числе и по моей вине, из-за невольно дупущеной неточности в формулировках.
V>Например, в SQL Server есть механизм алертов, при помощи которого именно СЕРВЕР, сообщает(нотифицирует) клиентов.
Я упоминал о нем в одном из постингов в этой ветке. Это отдельный, самостоятельный сервис. Сейчас уже не помню, возможно он использует механзм репликации сиквела для генерации событий, но сути это не меняет.
V>И в принцепе, дело ли сревера или нет нотифицировать клиентов о чем бы то ни было, это зависит от конкретной задачи.
Безусловно зависит, но как я уже говорил в подавляющем большинстве случаев это worst practice.
Мы уже победили, просто это еще не так заметно...
Re[8]: Как реализовано динамическое обновление данных в прил
Здравствуйте, Merle, Вы писали: KGP>>MS SQL Server, поддерживая тип поля timestamp, даёт пользователю возможность узнать изменял ли кто запись за время 'от чтения этого поля записи ранне до текущего чтения'. KGP>>Это не контроль целостности и не прямое оповещение, а контроль за изменениями записи, а точнее обновление поля при любом изменении записи. KGP>>И за этим следит СЕРВЕР (можно и в триггере на UPDATE повесить свою реализацию ~timestamp, но всё равно это работа СЕРВЕРА, а не среднего звена в данном случае. KGP>>При репликациях это необходимая работа. M>Не, ты точно чего-то путаешь...
Ну прям как пластинка заела ...
M>Когда timestamp на сервере меняется, сервер не бегает за всеми клиентами и не кричит "Мужики, у меня данные поменялись, обновляйтесь по бырому!".
Вы, уважаемый читаете между строк ? Где я писал, что 'сервер бегает за всеми клиентами'
M>Просто у клиента есть возможность определить самому менялись ли данные, а сервер просто их меняет, ну до кучи еще увеличивает timestamp никому об этом не говоря, а если вдруг какому-то клиенту стало интересно, то пусть сам придет и проверит, поменялись данные или нет.
И чем это высказывание разнится от : KGP>>MS SQL Server, поддерживая тип поля timestamp, даёт пользователю возможность узнать изменял ли кто запись за время 'от чтения этого поля записи ранне до текущего чтения'. KGP>>Это не контроль целостности и не прямое оповещение, а контроль за изменениями записи, а точнее обновление поля при любом изменении записи.
M>А здесь обсуждается как сделать и надо ли делать так, чтобы сервер сам извещал клиентов о том, что данные поменялись.
Обсуждалось, КАК реализовать слежку за изменениями данных ... M>Возможно я немного не ясно излагаю свои соображения, но это казалось мне очевидным.
Возможно, а что казалось очевидным , то что
'Возможно я немного не ясно излагаю свои соображения' ?
Re[9]: Как реализовано динамическое обновление данных в прил
Нда, что-то у нас с взаимопониманием бедулька какая-то...
KGP>Вы, уважаемый читаете между строк ? Где я писал, что 'сервер бегает за всеми клиентами'
А как еще понимать (-) на мои сообщения, в которых говорлось, что сервер бегать за клиентами не должен?
Я описывал принципы построения подобных механизмов, ты, как я понял, возражал, причем используя детали конкретной реализации.
Мало того, так еще и реализация страдает, так как timestamp годен для очень узкого круга задач, потому что отследить изменение нескольких записей или тем более вставку с его помощью проблематично.
M>>А здесь обсуждается как сделать и надо ли делать так, чтобы сервер сам извещал клиентов о том, что данные поменялись. KGP>Обсуждалось, КАК реализовать слежку за изменениями данных ...
Угу, но я описывал общие принципы построения, а ты какую-то конкретную реализацию, при этом вроде бы как ты со мной не согласен, но в чем и почему не понятно.
Ладно, давай в дальнейшем постараемся более четко выражать свою позицию, во избежание подобных, очевидно бесмысленных споров по причине взаимных непоняток.