全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1232
推到 Plurk!
推到 Facebook!

連 MS SQL Server 要用DataSet 還是 ClientDataSet ,作法請教??

尚未結案
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-18 12:38:36 IP:61.218.xxx.xxx 未訂閱
請教各位前輩: 連 MS SQL Server 要用DataSet 還是 ClientDataSet ?? 在Form 開啟時(如客戶基本資料,出貨單..)是否一次載入全部資料,供使用上筆,上筆瀏覽 我有看到一些系統,並不是一開始就載入資料,但能新增資料, 等要查詢時設定查詢條件後才顯示資料, 我目前也都是 Form 開啟 是就載入全部資料, 目前有新專案要作,才想是否要改變作法 ? 那要用 DataSet 還是 ClietnDataSet?? 不知各位前輩的看法如何?? 謝謝各位前輩...
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-18 17:14:15 IP:210.61.xxx.xxx 未訂閱
2-tier DataSet 3-tier ClientDataSet 動態組合Sql語法where後面的部份, 可縮小撈資料量
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-19 22:27:42 IP:61.62.xxx.xxx 未訂閱
SELECT * FROM TABLE1 WHERE 1=0 就可以不撈出一筆資料而且可以新增資料 加油喔,喵~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-20 12:20:52 IP:61.229.xxx.xxx 未訂閱
hi,jeffreck: 我不曉得你要問的問題是什麼,我試著對你的問題做以下的解釋: 1.TClientDataSet原則上是Borland提供programmer用來實作3-tird的元件(當然,你得搭配TDataSetProvider元件).如果你的系統要做成3-tird,在Delphi裡,除了TClientDataSet,你似乎沒有其他的選擇(如果不考慮web的話).而TClientDataSet的資料從那裡來,就看你要透過何種方式去讀取到後端的資料庫了.舉個例子而言,如果你用BDE的話,那麼你TDataSetProvider連接的DataSet就是TQuery,TTable,TStoredProc等元件.如果你是用ADO連資料庫,那麼TDataSetProvider連接的DataSet就是TADOTable,TADOQuery,TADOStoredProc...等.如果你想用dbExpress,那麼TDataSetProvider連接的DataSet就是TSQLQuery,TSQLStoredProc,TSQLTable....等. 2.至於你提到from開啟,就是載入全部資料.建議您儘量不要用這種方式.在以前的c/s架構下,很多人都會用這種方式來寫.但這樣的方法對DB是個很重的負擔(您可以參考坊間很多討論3-tird架構的書籍,大概都會提到中間層的apserver儘量是無狀態物件).您可以仔細想想,大部份的form,user其實不會需要看到全部資料庫裡的資料就能完成作業.例如一個進貨資料輸入的form,其實user也許只需要看到這個月的進貨單資料即可.所以,我通常都會在form上有個月份別的button,用以讓user設定要編輯那個月份的資料.然後form裡的sql指令就只讀取該月份的資料讓使用者修改或新增,刪除.像這樣的方式,搭配TClientDataSet,可以讓系統穩定很多,也可以減少DB的負擔. 這是我目前在使用的方式,提供給您做個參考.
系統時間:2024-08-09 16:46:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!