0

每当在数据库中插入或更新记录时,我如何跟踪或获得通知?每当数据库发生此类更改时,我想以近乎实时的方式通知外部应用程序更改。是否有独立于 DBMS 和独立于应用程序编程语言的方法来做到这一点?如果不是,那么特别是 MS Access 和 MS SQL Server 是否有可能?我当然希望避免对 DB 进行连续轮询。

4

4 回答 4

1

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

于 2008-11-26T14:43:40.283 回答
1

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

于 2008-11-26T14:45:24.680 回答
0

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

您需要使用windows API 来记录用户名,通常在打开总机窗体时运行。

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

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

Private Sub Form_BeforeInsert(Cancel As Integer) Me!UserCreated = UCase(CurrentUser()) Me!DateCreated = Now() End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer) Me!DateModified = Now() Me!UserModified = UCase(CurrentUser()) End Sub

——迈克

于 2009-01-06T18:59:25.227 回答
0

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

但是,MS 表示他们正在从 SQL Server 2008 中删除它

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

于 2009-08-24T13:41:00.897 回答