我想构建具有以下功能的客户端/服务器(或 3 层)类型的 Win32 应用程序:
- 当“A”客户端对数据库进行修改(更新、插入等)时,查看同一记录集的其他客户端几乎可以“立即”获得该数据的新 View
- 当与数据库的连接丢失时,可以通知客户端
有人可以帮助我吗?提前致谢
Pdta:我的数据库是 MySQL 5.1
最佳答案
请注意,如果这样做并拥有大量客户端,您可能会大量网络流量。 这正是大多数客户端-服务器应用程序不这样做的原因。
如果你真的想这样做,那么正确的做法是实现“观察者模式”; Delphi 中该设计模式的基本示例 has been described by Joanna Carter在她的博客中。
然后您需要扩展该模式,使其在网络上运行。 所以至少你需要一些处理“主题”接口(interface)的服务器进程。 您可以为此使用任何东西:WebServices , DataSnap服务器,RemObjects SDK等
大多数人想要这样的解决方案,从传统的客户端/服务器应用程序转变为多层应用程序。然后中间层可以为您处理所有通知。
关于database - Delphi 2009客户交流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1284745/