2008-11-26 51 views
0

如何在數據庫中插入或更新記錄時跟蹤或獲取通知?我希望在數據庫發生這種變化時近乎實時地通知外部應用程序發生變化。是否有DBMS獨立和應用程序編程語言獨立的方式來做到這一點?如果沒有,那麼是否可以使用MS Access和MS SQL Server?我期望避免連續輪詢DB。跟蹤或通知數據庫更改 - 主要插入和更新

回答

1

使用SQL Server,可以在SQL Server本身中加載DLL,並使用擴展存儲過程調用此方法。然後DLL可以通知其他應用程序 - 通常通過TCP套接字。

1

我認爲最新版本的Microsoft SQL Server允許您根據服務器條件和事件在.NET代碼中引發事件。我還沒有嘗試過,並且我沒有聽說過任何'DBMS獨立'的方法(沒有每隔X毫秒輪詢數據庫)。

0

使用MS-Access,我可以跟蹤記錄更改或記錄添加的主表中的字段,該字段存儲創建或更新記錄時的用戶名和日期。

您需要使用Windows API來記錄用戶名,通常在配電板表單打開時運行。

我正在挖掘尋找一個去追蹤具體的變化。我的數據庫用於項目管理。我想跟蹤具體發生了什麼變化,而不僅僅是我現在擁有的人和時間。

我認爲這符合原始問題的要求。我稍後可以添加讀取用戶名稱的Windows API。

私人小組Form_BeforeInsert(取消作爲整數) 我!UserCreated =用Ucase(CurrentUser()) 我!dateCreated會= NOW() 完子

私人小組Form_BeforeUpdate(取消作爲整數) 我!DateModified = NOW() 我UserModified =用Ucase(CurrentUser()) 結束小組

- 麥克

0

要與SQL Server做到這一點,您可以使用通知服務 - 編寫一個DLL,蘇爲數據更新訂閱來自數據庫的通知,您可以通過某種方式進行處理。

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

甲骨文有類似的東西(雖然他們傾向於留下他們的技術),但我沒有看到任何與數據庫無關的東西。