2010-05-31 55 views
2

我正在使用SQL數據庫,並且正在編寫VB.NET客戶端應用程序。此應用程序同時在多臺計算機上使用。如果其中一個客戶端更新了數據庫,我希望其他客戶端知道該更新。多個VB.NET客戶端之間的實時SQL數據庫更新

+0

您使用的是什麼RDBMS?另外我假設你的意思是在他們嘗試更新之前發佈通知,而不僅僅是檢測併發違規? – 2010-05-31 11:41:05

回答

0
  1. 確保您的表中有一個DateUpdated列
  2. 當讀表保存dateUpdated值到變量的存儲
  3. 當更新表包括DateUpdated < =
  4. 檢查更新的行數步驟3.
  5. 如果第4步返回0,則意味着其他人在當前用戶查看數據時更新了故事。

請注意,這僅適用於在保存數據時有興趣檢測更新的情況。如果您希望當前顯示的記錄已更新時通知客戶應用程序,則正如其他人提到的那樣,您必須使用某種通知服務。

+0

也許吧。我會更新帖子。 – Raj 2010-05-31 11:40:48

+0

我一定是在回答的同時,把這個問題作爲OP的問題加以解決! – 2010-05-31 11:42:17

+0

Hello Raj, 我希望客戶知道數據庫的任何更改。如上所述,由於在高峯時段(每5秒)更新頻率,通知服務看起來沒有解決方案。 你也許有其他的想法嗎? – Marcel 2010-06-01 06:59:01

1

如果您正在使用MS SQL Server,則可能會使用Service Broker notifications在數據更新時將通知推送到客戶端。這不是我個人使用過的經驗。

0

環顧四周後,我發現了一些有關Service Broker的良好信息。我還讀了以下內容;

查詢通知是專爲不經常變化的數據。也最好在服務器端應用程序(如ASP.NET或遠程),而不是客戶端應用程序(如Windows窗體使用應用程序)記住,每個通知請求都在SQL Server中註冊,如果你有大量的客戶端應用程序請求通知,這可能會在你的服務器上產生一個資源問題,微軟的建議是,對於客戶端應用程序,您將查詢通知用於不超過10個併發用戶。「

這是我關心的問題,因爲我有大約10個表格,每個表格更新得相當頻繁(每5秒)。

也許有人有經驗使用Service Broker通知更頻繁地更改數據。

非常感謝!

Marcel

+0

同意,並不特別聲音那麼對你的場景有用。順便說一句Stack Overflow的問題和答案是分開的,所以你應該編輯這個額外的信息到問題中,而不是將它作爲答案! – 2010-05-31 20:20:05

+0

對不起Martin用錯了...... :) 你也許還有其他一些想法嗎?可以使用其他任何其他選項而不是Service Broker通知? Thx, Marcel – Marcel 2010-06-01 07:00:50

+0

@Marcel並非如此。如果您無法獲得推送通知,那麼我想您必須讓您的應用程序自行輪詢數據庫,並與時間戳或日期時間字段進行比較以查找已更改的記錄。 – 2010-06-01 09:13:09

0

我有同樣的問題。 我的解決方案是創建一個審計表! 審計表包含所有表名和包含日期時間的另一列。

當用戶更改數據時,也會更新審計表中的日期時間。

所有用戶每4秒鐘檢查一次審覈表。如果其中一個表已更新,則用戶重新加載整個表的更新方式。

對不起,我的英語。

相關問題