c#-使用Firebird RDBMS自动刷新.NET应用程序中的数据
作者:互联网
我正在开发具有自动刷新功能的.NET应用程序.我数据库中的每个表都有一个MODIFIED_DATE列,该列在每次更新或插入后都会更新.目前,自动刷新功能仅适用于一张桌子,但是将来可能会更改.我目前正在考虑以下可能的解决方案:
>客户端应用程序在计时器上运行查询,例如每隔10秒,并返回MODIFIED_DATE大于我的应用程序中存储的最后修改日期的所有行.
>在侦听Firebird事件的每台客户端计算机上保持专用的开放连接,一旦事件触发,便运行查询.显然,在每次使用POST_EVENT命令更新/插入后,数据库都会触发该事件.
>开发一种服务,该服务将坐在服务器上侦听Firebird数据库事件,然后使用.NET远程处理来通知客户端应用程序.
任何人都可以告诉我上述哪种解决方案在性能和可伸缩性方面更好?
我希望该解决方案对数据库工作负载具有最小的影响.
解决方法:
实际上,Firebird的一个不错的功能是能够编写用户定义函数(UDF)的功能,您可以直接从触发器调用UDF,而UDF可以反过来(使用标准进程间通信)通知您的应用程序已发生更新,这然后成为通知模型,而不是轮询模型,并且具有更大的可伸缩性.
注意:UDF必须是本机dll(我相信)是C或Delphi,在Delphi中很可能会有很多示例代码.
标签:firebird,c,net,database 来源: https://codeday.me/bug/20191210/2103727.html