Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 关于数据库更改的通知_Sql_Sql Server_Wcf_Sql Server 2005_Sql Server 2008 - Fatal编程技术网

Sql 关于数据库更改的通知

Sql 关于数据库更改的通知,sql,sql-server,wcf,sql-server-2005,sql-server-2008,Sql,Sql Server,Wcf,Sql Server 2005,Sql Server 2008,我正在尝试一个场景,在这个场景中,我想用任何用户提交的更改来更新运行在不同PC上的桌面UI。例如: Application1安装在PC1、PC2和PC3上 假设所有PC都运行此应用程序 假设PC1上的用户1更改数据并提交到数据库 PC2和PC3上的UI应使用更改进行更新,而无需轮询或从数据库中提取数据 有谁能建议一种方法来通知我的中间层服务有关数据库更改的情况,然后我可以将其转发给所有注册的客户端。当表发生更改(插入/更新/删除)时,SQL Notification Services或Servi

我正在尝试一个场景,在这个场景中,我想用任何用户提交的更改来更新运行在不同PC上的桌面UI。例如:

  • Application1安装在PC1、PC2和PC3上
  • 假设所有PC都运行此应用程序
  • 假设PC1上的用户1更改数据并提交到数据库
  • PC2和PC3上的UI应使用更改进行更新,而无需轮询或从数据库中提取数据

  • 有谁能建议一种方法来通知我的中间层服务有关数据库更改的情况,然后我可以将其转发给所有注册的客户端。当表发生更改(插入/更新/删除)时,SQL Notification Services或Service Broker是否会发出通知?任何建议都会有帮助。

    正是这样做的。当服务器上的数据发生更改时,您将收到通知,您必须再次查询数据以刷新UI。一个简单的实现是使用CachedQueryOptions对象并将处理程序添加到该对象。

    在不与数据库通信的情况下,如何使用数据库更改更新客户端?通知服务已停止。也许看看查询通知?这仍然需要客户端以某种方式检索新数据。感谢回复。我最终将从数据库中提取数据,但只有当我从服务器收到要提取的通知时。看起来查询通知可能是Remus建议的答案。我计划通过一个服务层来实现这一点,该服务层会将此通知传播到所有注册的客户端。虽然响应有点晚,但最终我实现了查询通知,如果我注册一个表,它就可以正常工作。当我注册两个表时,我只从我注册通知的最后一个表获得通知。有什么想法吗?谢谢雷姆斯的建议,我觉得这是个解决办法。我将实施它,看看它是否有效。但问题是,当您说查询通知时,它是否也需要任何ServiceBroker的东西?SQL Server 2005和以后的SQL Server 2008 R2是否支持查询通知?查询通知依赖于Service Broker来传递其通知。这一切都在我文章的第一个链接中描述过。