跟踪或通知数据库更改 - 主要是插入和更新

时间:2008-11-26 14:27:00

标签: monitoring rdbms real-time

每当在数据库中插入或更新记录时,如何跟踪或获得通知?我想在数据库发生这种变化时近实时地通知外部应用程序。有DBMS独立和应用程序编程语言独立的方式吗?如果没有,那么特别是MS Access和MS SQL Server是否可能?我当然希望避免连续轮询数据库。

4 个答案:

答案 0 :(得分:1)

我认为最新版本的Microsoft SQL Server允许您根据服务器条件和事件在.NET代码中引发事件。我没有尝试过,而且我没有听说过任何“DBMS独立”的方式(没有每隔X毫秒轮询DB)。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

使用MS-Access,我跟踪记录更改或记录添加内容,主表中存储创建或更新记录时的用户名和日期。

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

我正在挖掘寻找一个跟踪具体变化。我的数据库用于项目管理。我想跟踪具体改变的内容,而不仅仅是我现在有谁以及何时改变。

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

Private Sub Form_BeforeInsert(取消为整数)    我!UserCreated = UCase(CurrentUser())    我!DateCreated = Now() 结束子

Private Sub Form_BeforeUpdate(取消为整数)    我!DateModified = Now()    我!UserModified = UCase(CurrentUser()) 结束子

- 迈克

答案 3 :(得分:0)

要使用SQL Server执行此操作,请使用Notification Service - 编写一个dll,该数据库订阅来自数据库的通知,以便以某种方式处理数据更新。

但是,MS表示他们是removing this from SQL Server 2008

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