2009-06-18 5 views
2

Я работаю над программой Delphi, которая использует базу данных firebird для хранения ее данных. Он использует домашний рост. система. Когда два пользователя просматривают одни и те же данные, например, в сетке данных, а один изменяет что-то, другой экран немедленно обновляется. Как это работает, объекты в одной программе сохраняют их в базе данных. В базе данных есть триггер, который регистрирует это изменение во вспомогательной таблице журналов изменений. Запись в эту таблицу журналов изменений вызывает событие. Вторая программа прослушивает это событие и знает из записи в таблице журнала изменений, какой объект был изменен. Он перезагрузит этот объект и поднимет событие внутри этой программы. Это событие вызовет все экраны, отображающие этот объект, и все объекты, которые основывают свое поведение на этом объекте для обновления. Мы хотели бы переключиться на .Net и, возможно, на MS SQL. Мой вопрос: 1) Как это сделать с помощью MS SQL? 2) Есть ли рамки, которые поддерживают это? Поэтому мне не нужно будет переносить это на .NetКак сделать обновления экрана с несколькими пользователями?

ответ

0

не похоже, что это было бы слишком сложно реализовать в C#. попробуйте использовать «шаблон наблюдателя» с любыми настраиваемыми режимами, которые вы хотите.

1

С версиями .Net Framework 2.0 и MSSqlServer 2005 поддерживается поддержка уведомлений об изменениях: с использованием класса SqlDependency. У вас есть пример в codeproject.

Ознакомьтесь также с некоторыми рекомендациями об использовании уведомлений в msdn.

Смежные вопросы