【发布时间】:2011-09-02 16:21:49
【问题描述】:
我正在尝试使用任何用户提交的更改来更新在不同 PC 上运行的桌面 UI 的场景。例如:
- Application1 安装在 PC1、PC2 和 PC3 上。
- 假设所有 PC 都在运行此应用程序。
- 假设 PC1 上的用户 1 更改数据并提交到数据库
- PC2 和 PC3 上的 UI 应根据更改进行更新,而无需轮询或从数据库中提取数据。
任何人都可以建议一种方法来通知我的中间层服务有关数据库更改的信息,然后我可以将其转发给所有注册的客户端。当表更改(插入/更新/删除)时,SQL Notification Services 或 Service Broker 会通知吗?任何建议都会有所帮助。
【问题讨论】:
-
您希望如何在不与数据库通信的情况下通过对数据库的更改来更新您的客户端?
-
通知服务已停止。也许看看查询通知? msdn.microsoft.com/en-us/library/ms130764.aspx 这仍然需要客户端以某种方式检索新数据。
-
感谢您的回复。我最终会从数据库中提取数据,但只有当我收到来自服务器的拉取通知时。看起来查询通知可能是 Remus 建议的答案。我计划通过一个服务层来做到这一点,该服务层会将这个通知传播给所有注册的客户。
-
它的响应有点晚,但最后我已经实现了查询通知,如果我注册一个表时它工作正常我注册了 2 个表我只从我注册通知的最后一个表中收到通知。有什么想法吗?
标签: sql sql-server wcf sql-server-2005 sql-server-2008