受不了Delphi 2009 的 TClientDataSet
在初接觸到程式設計時,那時對於Delphi 5的Midas架構覺得很驚奇,3-Tier、離線模式、Load Balance等功能,都讓我在中歷資策會學習期間,每一天,每一晚都過得很充實!當時的生活真的是累了就睡,起床就學,寫到這就想起好多美好時光,也要感謝很多老師,尤其是教Delphi的DoDo(miss 黃)、連sir,還有一位用課外自己時間教java的王Sir!
在出了社會接觸的幾個產品,多多少少都會用到CDS,尤其是拿來當一些資料的暫存特別好用,可以用資料庫的方式進行一些必要的操作。但一直以來都覺得它的速度實在不快,以往嚐試著用fastmm或是試著自行pack data等方式來改善,但成效總是有限!
在經歷近二年.NET的洗禮,最近又重新接觸MIDAS後,終於有了新的結果!首先以本機進行測試,從PROVIDER餵資料給CDS,這段時間花了9成五以上的時間,有了這樣子的體認,即可以有個初步的方向,即丟掉笨重的data結構。在重新檢視了專案中CDS的用法,發覺有大半的程式只是用來捉取資料(查詢,觀看)取回來的資料並不需要進行編修後再更新,也就是不用保有原cds的資料結構,只要想辦法手動"序列化(serialization)"這段不需要編修的Data資料,讓他到CLINET時可以正確還原到能夠檢視即可!經由這樣子的調整與改變,在有較大量資料的查詢下,速度至少快了將近一半!
寫到好像問題都解決了,沒有什麼受不了的!但試用了d2009後,又發覺cds二個問題
- Locate中文會不正常
- aggregates中 使用像 min(field1) 此時若field1是widestring會不正常.但string是正常的
0 個意見:
張貼留言