我正在使用SQL數據庫,並且正在編寫VB.NET客戶端應用程序。此應用程序同時在多臺計算機上使用。如果其中一個客戶端更新了數據庫,我希望其他客戶端知道該更新。多個VB.NET客戶端之間的實時SQL數據庫更新
回答
- 確保您的表中有一個DateUpdated列
- 當讀表保存dateUpdated值到變量的存儲
- 當更新表包括DateUpdated < =
- 檢查更新的行數步驟3.
- 如果第4步返回0,則意味着其他人在當前用戶查看數據時更新了故事。
請注意,這僅適用於在保存數據時有興趣檢測更新的情況。如果您希望當前顯示的記錄已更新時通知客戶應用程序,則正如其他人提到的那樣,您必須使用某種通知服務。
如果您正在使用MS SQL Server,則可能會使用Service Broker notifications在數據更新時將通知推送到客戶端。這不是我個人使用過的經驗。
環顧四周後,我發現了一些有關Service Broker的良好信息。我還讀了以下內容;
「查詢通知是專爲不經常變化的數據。也最好在服務器端應用程序(如ASP.NET或遠程),而不是客戶端應用程序(如Windows窗體使用應用程序)記住,每個通知請求都在SQL Server中註冊,如果你有大量的客戶端應用程序請求通知,這可能會在你的服務器上產生一個資源問題,微軟的建議是,對於客戶端應用程序,您將查詢通知用於不超過10個併發用戶。「
這是我關心的問題,因爲我有大約10個表格,每個表格更新得相當頻繁(每5秒)。
也許有人有經驗使用Service Broker通知更頻繁地更改數據。
非常感謝!
Marcel
同意,並不特別聲音那麼對你的場景有用。順便說一句Stack Overflow的問題和答案是分開的,所以你應該編輯這個額外的信息到問題中,而不是將它作爲答案! – 2010-05-31 20:20:05
對不起Martin用錯了...... :) 你也許還有其他一些想法嗎?可以使用其他任何其他選項而不是Service Broker通知? Thx, Marcel – Marcel 2010-06-01 07:00:50
@Marcel並非如此。如果您無法獲得推送通知,那麼我想您必須讓您的應用程序自行輪詢數據庫,並與時間戳或日期時間字段進行比較以查找已更改的記錄。 – 2010-06-01 09:13:09
我有同樣的問題。 我的解決方案是創建一個審計表! 審計表包含所有表名和包含日期時間的另一列。
當用戶更改數據時,也會更新審計表中的日期時間。
所有用戶每4秒鐘檢查一次審覈表。如果其中一個表已更新,則用戶重新加載整個表的更新方式。
對不起,我的英語。
- 1. Flex多客戶端實時更新
- 2. 加密客戶端和Firebase實時數據庫之間的數據
- 3. 使用Web套接字從數據庫實時更新數據到客戶端
- 4. 服務器和多個客戶端之間的數據同步
- 5. 多個客戶端的SQL數據庫共享
- 6. 支持多個DBMS;更新期間更新客戶端數據庫的最佳策略?
- 7. Mongodb單個數據庫vs每個客戶端的數據庫vs每個客戶端的數據庫
- 8. Oracle客戶端和Oracle數據庫之間的確切區別
- 9. 實時數據流到多個客戶端
- 10. 客戶端數據庫和中央數據庫之間的同步
- 11. 針對單個客戶端的MySQL備份多客戶端數據庫
- 12. 呼叫客戶端更改數據庫
- 13. 使用Asp.net在數據庫更新中通知多個客戶端
- 14. 自動更新客戶端數據
- 15. 在客戶端調用數據庫更新的方法
- 16. 確保多個Java客戶端訪問數據庫時的數據完整性
- 17. 兩個客戶端之間的Java Servlets,JSP和數據傳輸
- 18. 保存和檢索從客戶端到數據庫的時間
- 19. 在多客戶端數據庫中刪除Linq到SQL關聯
- 20. laravel如何創建多個數據庫與多表客戶端?
- 21. Server數據庫 - >客戶端數據庫更新基於版本
- 22. 從文本文件更新客戶端SQL Server數據庫結構
- 23. 每個客戶端的新數據庫或索引鍵?
- 24. 將客戶端時間保存在數據庫中
- 25. Singleton Apache Thrift客戶端比多個客戶端實例更好嗎?
- 26. 更新VB.Net數據庫與SQL更新聲明
- 27. RDP客戶端 - 實現時間
- 28. 另一個位置的數據庫和客戶端的本地時間之間的差異
- 29. 多個數據庫更新:
- 30. 跨所有客戶端的數據庫數據的實時同步
您使用的是什麼RDBMS?另外我假設你的意思是在他們嘗試更新之前發佈通知,而不僅僅是檢測併發違規? – 2010-05-31 11:41:05