每当在数据库中插入或更新记录时,如何跟踪或收到通知?每当数据库发生此类更改时,我想近乎实时地将更改通知外部应用程序。是否有独立于 DBMS 和应用程序编程语言的方法来执行此操作?如果不能,那么尤其是 MS Access 和 MS SQL Server 是否可以实现?当然,我希望避免连续轮询数据库。

有帮助吗?

解决方案

使用 SQL Server,可以在 SQL Server 本身中加载 DLL,并使用扩展存储过程从该 DLL 调用方法。然后,DLL 可以通知其他应用程序 - 通常通过 TCP 套接字。

其他提示

我认为最新版本的 Microsoft SQL Server 允许您根据服务器条件和事件在 .NET 代码中引发事件。我还没有尝试过,也没有听说过任何“独立于 DBMS”的方法(无需每 X 毫秒轮询一次数据库)。

使用 MS-Access,我可以使用主表中的字段来跟踪记录更改或记录添加,这些字段存储创建或更新记录时的用户名和日期。

您需要使用Windows API来记录用户名,通常在打开总机表单时运行。

我正在努力寻找一种方法来跟踪特定的变化。我的数据库用于项目管理。我想跟踪具体更改的内容,而不仅仅是我现在更改的人员和时间。

我认为这符合原问题的要求。我可以稍后添加读取用户名的 Windows API。

私有sub form_beforeinsert(取消integer)me!userCreated = ucase(currentuser())me!dateCreated = now()end sub sub sub

private sub form_beforeupdate(取消为integer)me!dateModified = now()me!usermodified = ucase(currentuser())end sub sub sub

——迈克

要使用 SQL Server 执行此操作,您可以使用通知服务 - 编写一个 dll,该 dll 订阅来自数据库的数据更新通知,您可以通过某种方式处理这些数据更新。

然而,MS 表示,他们 从 SQL Server 2008 中删除它.

Oracle 有类似的东西(尽管他们倾向于保留自己的技术),但我还没有看到任何与数据库无关的东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top