簡體   English   中英

TClientDataset 編輯一個包含 100k+ 條記錄的表

[英]TClientDataset to edit a table with 100k+ records

客戶想要構建一個類似工作表的應用程序來顯示來自數據庫(大概在 TDbGrid 或類似的數據庫上)的數據,允許自由搜索和編輯所有單元格,就像在工作表中所做的那樣。 底層表將有超過 10 萬行。

使用 TClientDataset 的問題在於,它傾向於將所有數據加載到內存中,違反用戶要求,即以下 3 個:

  1. 用戶可以隨時使用滾動條、鍵盤或搜索過濾器從第一條記錄導航到最后一條記錄(請注意,如果您轉到最后一條記錄,AFAIK...,TClientDataset 將加載所有記錄)。

  2. 連接將通過外部 VPN/互聯網(可能很慢),因此應加載屏幕上實際可見的記錄。 從來沒有

  3. 版本必須保存在事務中,以便在最后提交或回滾,並在必要時進行協調。

是否可以使用 TClientDataset 完成這 3 點? 如果不是,有哪些替代方案?

我只是在你關於替代品的最后一行回答,我可以添加一些建議:

1-您可以使用一些創造力,提供分頁和獲取讓我們說每頁 100 行使用在 UI 中配備了一個很好的進度條的線程。 在這種方法中,您必須通過一些智能查詢來管理搜索和過濾器,有時需要重新加載數據等...

2- 使用為此目的優化的第三方組件,如 SDAC + EhLib Dbgrid。 SDAC 是一個可用於緩存更新的數據集,EhDBGrid 內部有一個 MemTable 組件,它非常強大,免費搜索、模糊匹配或近似搜索工作得很好,可以還原、撤消和重做等...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM