将MySQL事件通知实现回Delphi应用程序

The*_*dge 6 mysql delphi notifications

天儿真好,

是否有人能够提供一些指示,告诉我如何通知我的Delphi应用程序MySQL数据库中的特定记录已更改?Interbase的事件系统有哪些方面?

我看过的想法:

.:Q4M :. (http://q4m.31tools.com/)

优点:原生MySQL解决方案不需要外部守护进程缺点:由于使用特定于Linux的Posix调用,因此不存在Win32构建

.:MySQL Message API :. (http://messagequeue.lenoxway.net/)

优点:强大(使用spread.org)缺点:没有Win32二进制文件.需要附加spread.org的配置和守护程序

.:自定义用户定义函数:.

我正在尝试编写一个可以使用Win32 API PostMessage()的UDF,因此将一条Windows消息发送到一个简单的套接字服务器.

优点:与MySQL集成(尽管具有外部DLL依赖性).可以根据我的需求定制缺点:我无法让它工作(请参阅发布MySQL用户定义函数发送Windows消息).这可能是因为MySQL作为服务运行

任何指针,想法等非常感谢.

--D

The*_*dge 2

我最终实现如下:

  • 创建了监听 TCP 端口和 Windows Pipe 的 Windows 应用程序
  • 创建了一个 mySQL 用户定义函数 (UDF),它将连接到上面的 Windows Pipe 并发送一些信息
  • 向数据库中的表添加触发器以调用 UDF,其中包含有关哪个表、什么操作(插入、删除、更新)、主键值的信息
  • TCP 客户端现在可以连接到 Windows 应用程序以接收从 UDF 传递的信息
  • 然后 TCP 客户端可以根据需要使用检索到的信息进行刷新

运行良好,并且在带宽方面是轻量级的(因为客户端只刷新他们需要的内容)。另外,将 TCP 服务器与数据库保持在同一台计算机上并使用 Windows Pipe 意味着管道可以保持打开状态,并且通过写入管道,不会产生 TCP 堆栈开销。意味着 mySQL 上的负载和执行 UDF 所需的时间非常小。