c# - 使用 firebird RDBMS 在 .NET 应用程序中自动刷新数据

标签 c# .net database firebird

我正在开发一个具有自动刷新功能的 .NET 应用程序。我数据库中的每个表都有一个 MODIFIED_DATE 列,该列在每次更新或插入后都会更新。目前,自动刷新功能仅适用于一张表,但将来可能会发生变化。我目前正在考虑以下可能的解决方案:

  1. 客户端应用程序在计时器上运行查询,例如每 10 秒返回一次 MODIFIED_DATE 大于存储在我的应用程序中的上次修改日期的所有行。

  2. 在监听 firebird 事件的每台客户端计算机上保持专用的开放连接,然后在触发事件后运行查询。每次使用 POST_EVENT 命令更新/插入后,该事件显然会由数据库触发。

  3. 开发一项服务,该服务将驻留在服务器上监听 firebird 数据库事件,然后使用 .NET 远程处理通知客户端应用程序。

谁能告诉我以上哪种解决方案在性能和可扩展性方面更好?

我希望解决方案对数据库工作负载的影响尽可能小。

最佳答案

实际上,Firebird 的一个不错的功能是能够编写用户定义的函数 (UDF),您可以直接从触发器调用 UDF,而 UDF 可以反过来通知您的应用程序(使用标准进程间通信)有更新发生后,这就变成了通知模型而不是轮询模型,并且更具可扩展性。

警告:UDF 需要是原生 dll(我相信)C++ 或 Delphi,Delphi 中很可能有相当多的示例代码。

关于c# - 使用 firebird RDBMS 在 .NET 应用程序中自动刷新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/445394/

相关文章:

java - 设置 Firebird 以使用 JDBC 进行远程访问

c# - 在 Azure Service Fabric 中运行时更改配置

.net - 如何在自定义 TCP 客户端/服务器之间正确传递 XML 字符串?

.net - 如何通过 WCF 暴露对象?

sql - 选择具有相同姓名和家庭sql的人

database - 即使更新的列不是索引列,postgresql 也会更新索引吗?

c# - 在 C# 中操作文件中的 XML 名称和值

c# - ASP.net WebForms - 在标记中使用 GetRouteUrl

c# - 在 .NET 中使用 wsdl 创建对象

.NET 中 MEF 的 Java 等价物