我在一个显示许多计算的软件中使用 Delphi 和 Firebird DB,并且根据要求,每当其他相关表被更新时,我需要存储和显示总数。
我目前正在对几个 TIBTable 组件使用刷新方法来向用户显示这些计算的结果。考虑到这是一个多用户应用程序以及刷新会使发布速度变慢的事实,是否有任何替代刷新或更优化的方式?
对于客户端需要接收通知的多用户应用程序,一种选择是使用Firebird 事件为每次数据更改(SQL INSERT、UPDATE 或 DELETE)发送“广播”消息。
客户端可以“注册”(监听)特定的消息类型,并且每当 Firebird 服务器发送此类型的消息时,他们都会接收它,并运行客户端应用程序代码,在您的情况下,这将刷新用户界面对象以显示全部的。
虽然这在许多简单的用例中可能是一个足够的解决方案,但也有一些限制。我最近在这里写了关于这个主题的博客:
(我是 Delphi 和 Free Pascal 中间件库的作者)