是否可以知道数据库中某些表的内容何时以及是否已更改? 我的SQL Server如何通知客户端应用程序数据被另一个用户更改?如何使用dbGo实现查询通知?
我的客户端是否需要轮询数据库,或者是否有回调机制?
我的客户端是一个带有TADODataSet
的Delphi应用程序,我的服务器是SQL Server 2005/2008,为多个客户端提供服务。
答案 0 :(得分:6)
Delphi dbGo
控件不支持Query Notifications
,因此要么轮询数据库,要么尝试检查以下部分内容:
答案 1 :(得分:1)
不,你必须建立自己的“中间层”才能做到这一点。最简单的方法是轮询服务器。更复杂的解决方案是构建自己的“中间层”服务器,该服务器轮询数据库并将通知推送到客户端(使用您自己的客户端连接)。
中间解决方案是让服务器上有一个单独的客户端轮询您需要“监视”的表,并将“notfication flags”写入另一个可由客户端轮询的数据库表中。至少通过这种方式,客户端可以使用最少的数据轮询一个简单的表,该数据列出已经更改的内容,然后可以由另一个选择查询读取。客户的努力要少得多。