我使用Delphi與Firebird數據庫在一個軟件,顯示許多計算和根據需求我需要存儲和顯示其他從屬表得到更新時的總和。德爾福 - 數據庫刷新替代
我目前使用刷新方法爲幾個TIBTable組件顯示這些計算的結果給用戶。考慮到這是一個多用戶應用程序,並且刷新使發佈變慢的事實,有沒有其他更新或更優化方式的選擇?
我使用Delphi與Firebird數據庫在一個軟件,顯示許多計算和根據需求我需要存儲和顯示其他從屬表得到更新時的總和。德爾福 - 數據庫刷新替代
我目前使用刷新方法爲幾個TIBTable組件顯示這些計算的結果給用戶。考慮到這是一個多用戶應用程序,並且刷新使發佈變慢的事實,有沒有其他更新或更優化方式的選擇?
對於多用戶應用程序,其中客戶端需要接收通知,一個選擇是使用Firebird events發送每一個數據變化的「廣播」消息(SQL INSERT,UPDATE或DELETE)。
客戶端可以爲特定的消息類型「註冊」(監聽),並且每當Firebird服務器發送這種類型的消息時,他們都會收到它並運行客戶端應用程序代碼,在您的情況下會刷新用戶界面對象來顯示總數。
儘管在許多簡單用例中這可以是一個充分的解決方案,但也有一些限制。我最近在博客這個話題在這裏:
(我爲Delphi和自由帕斯卡爾中間件庫的作者)
刷新以獲取新數據真的沒有辦法。但是,如果您使用IBObjects進行數據庫訪問,則可以使用TIBOTable.InvalidateBookmark
方法使其僅刷新特定行。這比調用Refresh
快很多,它刷新整個數據集。
看着the documentation,不幸的是,TIBTable似乎沒有任何可比性。
剛剛讀完,偉大的信息.....也許你應該在EDN博客上發佈 – Wel