這裏就是我試圖完成:如何在不應用掛起更新的情況下刷新TClientDataSet?
- 從數據庫中檢索記錄1通過將TSQLDataSet的CommandText:SELECT * FROM myTable的WHERE ID = 1
- 使用的TClientdataSet修改的記錄。 (1等待更新)
- 檢索下一條記錄。 SELECT * FROM myTable WHERE ID = 2
- 修改記錄。 (現在有2個待定更新)
- 最後,通過ApplyUpdates函數將2個未決更新發送回數據庫。
當我執行第3步時,我得到了「必須在刷新數據之前應用更新」。
如何在不應用掛起更新的情況下刷新TClientDataSet?
'TClientDataSet'被設計來保存很多記錄。您一次使用它來拉取和修改一條記錄的方式似乎效率不高。拉兩個(全部)用戶需要修改的記錄是不是更好,讓用戶修改這些記錄,然後用'ApplyUpdates'全部一次性地將更新應用到數據庫? –
@詹姆斯,如何處理一個數百萬的基本表/記錄集,將所有這些數據帶到客戶端修改一些記錄似乎效率更低。 – jachguate
@jachguate - 我同意。但是,最有效的方法似乎是在提取更多數據之前應用更新。但是OP沒有解釋很多有關表格或爲什麼延遲(批量)更新很重要。如果延遲更新是必要的,那麼你的答案似乎是最好的解決方案。 –