Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Firebird, Interbase > Синхронизация данных |
Автор: jsj 2.7.2011, 01:35 |
Доброго времени суток. В программировании БД - новичок) Есть задача - реализовать программу на базе фб с удаленным сервером. Основной вопрос у меня - как обычно/удобно/эффективнее синхронизировать данные? Т.е. один клиент изменил запись, как эффективнее об этом узнать остальным клиентам? (Рассматриваю вариант, без программной надстройки над сервером фб.) |
Автор: Akella 2.7.2011, 09:06 | ||
Будь очень осторожен, т.к. если один клиент изменит в цикле 1000 записей, то другим клиент придёт 1000 сообщений, а если клиентов штук 30? Сервер должен разослать 30 тысяч сообщений? О_о Лучше по таймеру проверять и на форме (в окне или в области уведомлений ОС) показывать сообщение и/или кнопку с текстом "Есть новые записи" и клиенты пусть сами думают, нажимать или нет? |
Автор: jsj 2.7.2011, 11:17 | ||||
Ок, т.е. все равно по таймеру, но делать select ? Или есть другой механизм? |
Автор: Frees 2.7.2011, 20:44 | ||||
это в том случае, если каждое изменение было в своей транзакции.
дак при получении евента кнопку и показывать, зачем таймер? Добавлено через 1 минуту и 12 секунд механизм POST EVENT |
Автор: jsj 3.7.2011, 17:10 |
посмотрел пост_евент, я так понял можно посылать только константу строковую, а можно как-нибудь передать например номер айди(поле) добавленной записи? |
Автор: Frees 3.7.2011, 21:57 | ||
Нет, только константную строку, |
Автор: jsj 3.7.2011, 23:17 |
Ясно - спасибо - чтож думаю и так разрулимся ))) |
Автор: Akella 4.7.2011, 09:45 |
Создай временную таблицу или хранимую процедуру или ещё что-нить придумай. Туда пиши нужный ID и отправляй строковую константу. П клиент при получении события знает, что нужно проверить таблицу и там узнать ID. Есть глобальные переменные ещё, но они отдельные, для для каждого клиента своё значение переменной, хоть и имя переменной одинаковое. |