3

当 mysql 数据库发生更新或更改时,我如何通知我的 C 或 C++ 应用程序。有没有为此目的服务的特殊图书馆?

4

2 回答 2

6

MySQL 中没有一个开箱即用的功能可以做到这一点。但这绝对是可能的。以下不是一步一步的说明,而是采取的路线

  1. 为 MySQL创建一个 UDF(用户定义函数),它可以做一些你可以用你的应用程序捕获的事情,例如通过网络发送消息。下面是一个可以发送 STOMP 消息的 UDF 示例。我相信你可以调整它来满足你的需求。

  2. 在您的应用程序中实现相应的“接收消息”功能。例如,如果您的 UDF 通过套接字发送消息,则让您的应用程序侦听该套接字。

  3. 创建一个触发器,触发您尝试捕获的事件(例如某些更新)。此触发器可以从第 1 步调用您的 UDF 以向您的应用程序发送消息(由于第 2 步,您将收到)。

于 2013-08-02T13:36:16.930 回答
2

您可以使用unixODBC在 unix 平台上访问您的 mysql 数据库。

为了通知您的 mysql 表中的更改,您可以根据您的要求执行以下任一操作。

  1. 使用数据库触发器来执行脚本或程序(您不需要 odbc 驱动程序)。
  2. 从 C/C++ 程序轮询数据库以检查是否有任何更改。
  3. 编写一个监视器守护程序,它轮询数据库并向您的 C/C++ 程序发出信号。
于 2013-08-02T13:08:25.960 回答