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

顯示並更新資料庫資料哪一種方法比較好?

答題得分者是:cashxin2002
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-15 10:09:12 IP:210.66.xxx.xxx 未訂閱
一般要顯示與更新資料庫資料的話,我都是用DB的contral元件去控制。但是我發現有些人卻不用,反而繼續用一般標準元件(例如label,text)去秀,然後再動態程式碼去寫回去。我是不大懂這樣不但比較麻煩,而且想不出有何優點,請問不知道哪位大大有過這樣的經驗。
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-15 10:20:27 IP:61.221.xxx.xxx 未訂閱
您好: 之前參加站長舉辦之研討會,他們的產品不用DB的原因 是考量效能,應該是不要一直連著資料庫 等需要時再對資料庫做存取 引述Delphi.Ktop風紀小隊---[ 發問前請先找找舊文章 ]---
豬頭寶寶
一般會員


發表:1
回覆:4
積分:1
註冊:2003-07-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-15 12:34:15 IP:210.200.xxx.xxx 未訂閱
不用DB還有一個原因 在多人使用的環境下 如果用DBTEXT去連著編輯的話 只要該 USER一直沒離開且處於EDIT MODE之下的話 會造成該筆記錄一直LOCK 住 這樣會有讓其他人無法存取該筆記錄.
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-15 13:53:11 IP:210.65.xxx.xxx 未訂閱
Hi:    
引言: 不用DB還有一個原因 在多人使用的環境下 如果用DBTEXT去連著編輯的話 只要該 USER一直沒離開且處於EDIT MODE之下的話 會造成該筆記錄一直LOCK 住 這樣會有讓其他人無法存取該筆記錄.
如果真的是這樣,那豈不是又多了資料互蓋的問題 -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-15 14:08:50 IP:63.84.xxx.xxx 未訂閱
您好﹗    何種環境适合使用資料感知元件﹐何種環境适合使用普通VCL元件﹐小弟個人覺得是一種實做經驗的累積﹐有如terrychen兄和豬頭寶寶兄所言﹐在一定的情況下﹐使用資料感知元件﹐對資料庫而言﹐會造成一些負擔﹐尤其是效能降低的問題﹐但反過來講﹐在Local形態的資料庫程式中﹐使用資料感知元件不無优勢之處﹐減少程式碼的撰寫等等优點也是值得參考借鑒﹐建議您根据實做內容來做合适的考量与選擇﹐得到的結果就是之前提到的經驗累積﹒加油﹗    參考看看﹗    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-15 14:51:45 IP:210.66.xxx.xxx 未訂閱
引言: 您好: 之前參加站長舉辦之研討會,他們的產品不用DB的原因 是考量效能,應該是不要一直連著資料庫 等需要時再對資料庫做存取 引述Delphi.Ktop風紀小隊---[ 發問前請先找找舊文章 ]---
那請教一個問題: 如果是更新的話是不常作動作,所以需要再去連接即可。但是像是做上下一筆資料的瀏覽的話,不斷的使用sql語法去select會比連接db元件來的好ㄇ? 感謝賜教!
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-15 14:59:06 IP:210.66.xxx.xxx 未訂閱
引言: 您好﹗ 何種環境适合使用資料感知元件﹐何種環境适合使用普通VCL元件﹐小弟個人覺得是一種實做經驗的累積﹐有如terrychen兄和豬頭寶寶兄所言﹐在一定的情況下﹐使用資料感知元件﹐對資料庫而言﹐會造成一些負擔﹐尤其是效能降低的問題﹐但反過來講﹐在Local形態的資料庫程式中﹐使用資料感知元件不無优勢之處﹐減少程式碼的撰寫等等优點也是值得參考借鑒﹐建議您根据實做內容來做合适的考量与選擇﹐得到的結果就是之前提到的經驗累積﹒加油﹗ 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
請教一下忻晟大大... 您說使用感知元件會造成資料庫的負擔,可是不是當你再對資料作動作時,才會去連資料庫ㄇ?那跟動態去下sql作動作,對資料庫而言,不是有一樣的負擔ㄇ? 感謝賜教!
sanhang
一般會員


發表:12
回覆:25
積分:17
註冊:2002-08-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-01-15 15:52:44 IP:211.21.xxx.xxx 未訂閱
引言:
引言: 您好: 之前參加站長舉辦之研討會,他們的產品不用DB的原因 是考量效能,應該是不要一直連著資料庫 等需要時再對資料庫做存取 引述Delphi.Ktop風紀小隊---[ 發問前請先找找舊文章 ]---
那請教一個問題: 如果是更新的話是不常作動作,所以需要再去連接即可。但是像是做上下一筆資料的瀏覽的話,不斷的使用sql語法去select會比連接db元件來的好ㄇ? 感謝賜教!
照你說的方式,基本上作瀏覽的動作也不會一直下SQL 一般會將Result cache 到DataSet(TQuery)中 然後以Next等方式取出到Edit中作顯示罷了 兩種方式各有利弊,青菜籮蔔各有所好 以目前電腦處理效率的快速,不使用DB-Aware元件的方式可能會較不方便 程式碼也多了一堆(我想這是Programmer最不願意看到的吧) 至於資料的異動,我則是比較偏好直接下SQL啦
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-01-15 15:54:01 IP:63.84.xxx.xxx 未訂閱
您好﹗    一般來講﹐使用的資料感知元件會通過DataSource元件連接上游的資料集元件﹐資料集元件對資料庫進行任何查詢或異動作業時﹐資料感知元件皆會即時的反應出其中的變化﹐在資料筆數非常多的情況下﹐就會產生效能部分的降低﹐不知您是否有接触到資料量非常之大的程式﹐每每一個動作﹐都會等上好半天﹐資料感知元件(特別是DBGrid元件)也是反复的做一些即時的資料顯示動作﹒    基于以上的缺點﹐其實也是有解決的方法﹐資料集元件有兩個相關的方法﹐DisableControls和EnableControls﹐作用分別是斷開資料集元件和下游元件(如資料感知元件)的連接和恢复資料集元件和下游元件(如資料感知元件)的連接﹒語法如下﹕ ADOTable1.DisableControls; ADOTable1.EnableControls;    尋找一下前段時間的文章﹐有這方面相關的問題解答﹒ 參考看看﹗ <><>===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-01-15 16:02:37 IP:61.221.xxx.xxx 未訂閱
引言:
引言: 您好: 之前參加站長舉辦之研討會,他們的產品不用DB的原因 是考量效能,應該是不要一直連著資料庫 等需要時再對資料庫做存取 引述Delphi.Ktop風紀小隊---[ 發問前請先找找舊文章 ]---
那請教一個問題: 如果是更新的話是不常作動作,所以需要再去連接即可。但是像是做上下一筆資料的瀏覽的話,不斷的使用sql語法去select會比連接db元件來的好ㄇ? 感謝賜教!
上下一筆瀏覽並不需要不斷的使用sql語法去select,只是於dataset.prior or dataset.next如此處理而已,基本上若表單上沒有很複雜的資料庫存取動作,用DB元件會較方便 ~~應無所住而生其心~~
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-01-15 16:29:58 IP:210.66.xxx.xxx 未訂閱
感謝各位大大的指導!經過你們的指點,我才大徹大悟,怎麼會誤以為是每次都要去動態取資料ㄋ?可能是因為我一開始就用DELPHI的感知元件後,因為太方便而忘了在資料庫擷取資料的原理了。再加上目前看到別人的程式碼就是這樣做的,太就沒這樣做的我就以為這樣做是對的,一時迷惑不曉得其中的道理。真的是很感謝各位大大的指點!這真是個好地方啊... 不過還是有遺憾之處..就是只能給一位大大分數,真為難啊!希望其他大大不要介意啊!
Sanyuan
一般會員


發表:24
回覆:32
積分:11
註冊:2002-06-23

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-01-16 11:48:32 IP:211.75.xxx.xxx 未訂閱
小弟再撰寫及維護程式的時候 也有這種困擾 目前所維護的系統 是非感知元件的grid 是hyperGrid,也就是一切都輸入完畢後,再組成sql回寫回去資料庫 欄位的控制麻煩就別提了 不過最近有個需求,讓我更困擾 目前還不知道怎麼解 原本有二十幾個欄位,現在要在第三個欄位後面新增加兩個新欄位 問題來了,原先程式碼都是 cells[5,i] 來代表第五個欄位的值 新增加以後,程式碼裡所有的cells[x,i]全部要改,混亂非常 再加上hyper的控制介面 光想就.... 所以目前還沒動工 使用非感知元件在設定一些屬性及選項 真的很方便 不過要修改欄位的位置 想到就怕 還是有更好的解決方式呢? 小弟的經驗,供各位參考
系統時間:2024-09-09 17:42:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!