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

关于ADOTABLE的用法

答題得分者是:Stallion
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-09 15:52:44 IP:222.184.xxx.xxx 訂閱
以前问过一些类似的问题,得知ADOTABLE在小表中适宜运用,最好在用前OPEN,用后CLOSE,我现在有一个FORM,用于新增单位使用,单位也就是瓶、盒、袋这样的单位,表肯定很小,记录也不会超过去30条样子的,窗口一打开就用DBGRID显示当前所有资料,窗口上有两个按钮一个增加,一个删除。我想要问的是,我ADOTABLE设计时为关,然后在窗口ON SHOW时OPEN,在窗口ONCLOSE时CLOSE,在新增和删除时就不再开关了,这样是否合理高效?
------
我的编程起步于ktop,我将永远支持ktop
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-09 17:23:44 IP:211.22.xxx.xxx 未訂閱
如果資料那麼簡單,數量又肯定在一定極少的範圍之內,我不會考慮使用資料庫。
使用資料庫的程式就一定有所消費,要載入存取資料庫存取所需的一些元件,那麼在系統上與效能上就是一種負載(Loading)。
既然資料結構簡單,何不考慮自訂簡易的紀錄(Record)檔,然後使用檔案標準IO函數來做(Assign,Reset,ReWrite,ReadLn,WriteLn,Read,Wirte,Close等),並配合ListView來顯示資料,效能好,速度快,不需要使用資料庫元件。請參考~
===================引 用 ntjrr 文 章===================
以前问过一些类似的问题,得知ADOTABLE在小表中适宜运用,最好在用前OPEN,用后CLOSE,我现在有一个FORM,用于新增单位使用,单位也就是瓶、盒、袋这样的单位,表肯定很小,记录也不会超过去30条样子的,窗口一打开就用DBGRID显示当前所有资料,窗口上有两个按钮一个增加,一个删除。我想要问的是,我ADOTABLE设计时为关,然后在窗口ON SHOW时OPEN,在窗口ONCLOSE时CLOSE,在新增和删除时就不再开关了,这样是否合理高效?
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-09 18:00:23 IP:220.130.xxx.xxx 訂閱
如果你還是需要使用資料庫(有去Join其它Table的機會),
那麼其實這樣倒是不用很在意整體的資料,
倒是可以反過來看一下是否這些設計可以重用,
比如說單位設定與貨幣設定都可以用同一組ADOTable與Form,只要參數化即可
這樣可以在design time時省掉一些不必要的code
在runtime則可以省掉一些不必要的dataset一直被留在記憶體
但是相對的,某些需要經常開放的Table以便程式運作的,可能就比較不適宜這樣的作法,
因為太常去開關Table其實也是一種消秏
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-09 20:11:38 IP:222.184.xxx.xxx 訂閱
TO Stallion 大大,因为代码中已大量运用了上述的设计思路在运作,并且您所说的那方面知识还没有研究,初步感觉如果在SQL数据库,局域网操作的话好象就行不通?
TO Coffee大大,您所说的我稍有理解,但感觉合在一起的话省了资源,但维护起来增加了一定难度,分开来的话感觉较清晰一点。
因为这些单位基础数据的设置,基本上在使用程序的最初一段时间用用,以后可能是碰都不会碰的。如果ONSHOW时OPEN ,ONCLOSE 时CLOSE基本上没有大问题的话,我就不在已经大量运用的代码中改了。
------
我的编程起步于ktop,我将永远支持ktop
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-09 22:37:35 IP:211.22.xxx.xxx 未訂閱
其實我覺得問題重點應該是在你的資料表是設計給單一程式還是多個程式同時存取。
如果是給單一程式獨享,那麼你在Project檔案裡面直接開啟,到程式結束再關閉資料表都無所謂,而且效能可能不錯;但是反過來說,如果你的資料表是同時給多人使用存取,那麼建議你使用ADOQUERY配合ADOCONNECTION,適時開關CONNECTION與在QUERY裡使用適當的SQL語法取出所需要的資料集,如此不但可以減輕SQLSERVER的LOADING,還可以將每筆資料錄依照需求自訂鎖定狀態,程式碼雖然麻煩了一點,但是可以增加效能,減低資料被覆蓋或者突然間被刪除的機率。
===================引 用 ntjrr 文 章===================
TO Stallion大大,因为代码中已大量运用了上述的设计思路在运作,并且您所说的那方面知识还没有研究,初步感觉如果在SQL数据库,局域网操作的话好象就行不通?
TO Coffee大大,您所说的我稍有理解,但感觉合在一起的话省了资源,但维护起来增加了一定难度,分开来的话感觉较清晰一点。
因为这些单位基础数据的设置,基本上在使用程序的最初一段时间用用,以后可能是碰都不会碰的。如果ONSHOW时OPEN ,ONCLOSE 时CLOSE基本上没有大问题的话,我就不在已经大量运用的代码中改了。
系統時間:2024-05-19 8:25:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!