![]() |
|
![]() ![]() ![]() |
|
richy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 13.11.2007 Репутация: нет Всего: нет |
Ребят такая проблема у меня....Сетевая БД, работающая под Interbase 6...Задача: Если пользователь на сервере создает запись или изменяет ее в DBGrid, то через 3-5 сек. на всех компах в сети, в таких же программах клиентах должна отображаться эта запись, т.е. все поьзователи в сети, работающие с этой БД, если вносят изменения в DBGrid, то все должны видеть это и также могли изменять. (Изменения происходят у меня в БД, если перезапускать программу или набор данных)...вот....Прошу Вашей помощи....как это можно осуществить, желательно подробно...
Заранее большое спасибо...)) Это сообщение отредактировал(а) richy - 3.12.2007, 16:13 |
|||
|
||||
Exai1e |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 908 Регистрация: 3.12.2006 Где: Moscow Репутация: нет Всего: 30 |
разве не работает в сетевой версии сети ?... Примерно вот так:
Это сообщение отредактировал(а) Exai1e - 3.12.2007, 21:38 -------------------- "Решение зависит от выбранного геморроя" © Snowy "у нас как в армии - либо работает, либо так и задумано" |
||||
|
|||||
richy |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 13.11.2007 Репутация: нет Всего: нет |
Большое спасибо, сегодня попробую.... |
||||||
|
|||||||
richy |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 13.11.2007 Репутация: нет Всего: нет |
Да нет....мы нетак поняли друг-друга.....Проблема не так выглядит....Сеть, в ней 2 компа, на одном запущено приложение и соединенное с БД и на другом запущено это же приложение и тоже соединено с этой же БД....суть задачи: Если пользователь на первом компе вводит данные в DBGrid, то автоматически в реальном времени на другом компе появляется эти же данные в DBGrid....т.е. это похоже на работу программы RAdmin, второй пользователь по сети видит все, что происходит на мониторе другого компа и может делать там все....Как можно это осуществить и что бы не было проблем синхронизации |
||||||
|
|||||||
nettle |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 26.1.2007 Где: BG Репутация: нет Всего: нет |
Вот етот компонент TIBEventAlerter попробовал?
В папке Demos\db\ibdemo на delphi есть... |
|||
|
||||
Exai1e |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 908 Регистрация: 3.12.2006 Где: Moscow Репутация: нет Всего: 30 |
Так вроде
как раз таки и обновляет данные, и пользователь на второй машине должен увидеть изменения... -------------------- "Решение зависит от выбранного геморроя" © Snowy "у нас как в армии - либо работает, либо так и задумано" |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
richy,
Идешь на ibase.ru и читаешь статью на эту тему. Поскольку просто из Делфи это невозможно при разумных затратах. Не будешь же каждую секунду проверять, были изменения или нет. |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
есть компонент TIBEventAlerter.
richy, не советую автоматически делать Close Open при получении события от TIBEventAlerter, лучше какую-нибудь кнопку подсветить или еще чего, но обновление должен запустить пользователь. Т.е. твое дело сообщить, что есть изменения, а пользователь сам решит когда ему обновиться. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Deniz,
Прочитай ВНИМАТЕЛЬНО что этот alerter делает. |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
SergeBS, можно ссылочку на внимательное прочтение?
Добавлено через 4 минуты и 38 секунд Возможно не так компонент назвал, в IBX TIBEvents, в FIBPlus TSIBfibEventAlerter1. Что не так? -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
nettle |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 26.1.2007 Где: BG Репутация: нет Всего: нет |
для успешная работа IBEvents надо покопать у db design - тригери before/after insert, before/after update.
вот пример:
...у IBAlerter компонент ловиш event: "INVOICE_REFRESH" |
|||
|
||||
richy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 13.11.2007 Репутация: нет Всего: нет |
Ребят всем спасибо, буду пробовать....))
|
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Deniz,
Все проще. И в статье об этом пишется. Послать сообщение стандартным для винды способом можно. Но нет гарантии, что оно будет получено. И нет квитирования, что оно получено. Поэтому и ищут более другие способы. Ну и заодно пытаются поменьше ресурсов сожрать на эту задачу. Я в свое время изрядно попыхтел, чтобы обеспечить гарантированную рассылку с сервака по нужным адресам в локалке сообщение о неудаче с бэкапом. |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
Off:
ну дай ссылку на статью, мне интересно почитать.
В общем дай ссылку почитаю, просветлюсь, реально интересно. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Deniz,
IBASE.RU - Маленькие хитрости Interbase:
|
|||
|
||||
Akella |
|
||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() А можно просто безо всяких отлавливаний событий - повесить кнопку "Обновить" на панели кнопок. Так сделано во многих клиент-серверных приложениях. Добавлено через 1 минуту и 15 секунд
а если обновилась добрая сотня записей, тогда список в событии передавать? или отправлять сотню сообщений? Добавлено через 1 минуту и 45 секунд
ссылка битая :( |
||||||
|
|||||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
SergeBS, не хотелось бы повторяться, но ... дайте ссылку на статью, а не выдержку из нее.
Саму статью я не нашел. Далее по приведенному фрагменту: уже есть версия FIBPlus 6.8, для IBX 708. уже FB 2.1 и IB 2007 есть. Из всего этого делаем вывод:
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
Ура сам нашел
![]() Теперь по всей статье и о сайте в целом. некорректная информация. Ссылка на статью -> http://konstb.newmail.ru/interbase/hints.html#synchrorefresh Извините, но на главной странице http://konstb.newmail.ru написано
Это все не ради спора или упрека, просто хотел разобраться. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Deniz,
Малость зашивался на работе, плюс выходные. Если хочешь, отправлю статью Глеба Уфимцева с разбором способов оповещения. Тоже древняя, но таблица умножения уже века не устаревает ![]() Называется "Сервис событий в SQL-сервере". 2 странички. |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
OFF:
SergeBS, ничего страшного бывает. Честно говоря читать "древние" статьи нет желания. Это как читать руководство по Win3.11, некоторые принципы остались, но в целом ... Таблица умножения не меняется и в нормализации БД тоже не много нового, а вот методы обработки постоянно появляются новые. Вон в MSSQL тип поля появился XML и индекс по нему и обработка. Хотя если 2 странички ... давай. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Deniz,
Сюда или куда-нибудь в другое место? |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
SergeBS, кидай сюда может кто еще почитает, или лучше в статьи, а здесь только ссылку.
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Deniz,
В понедельник сделаю - запарка пока на работе.. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |