請教一個設計上的問題? (有關元件和欄位) |
答題得分者是:T.J.B
|
SKYSTAR
中階會員 發表:76 回覆:198 積分:64 註冊:2002-06-10 發送簡訊給我 |
各位先進好.... 請教一下....
您們在設計資料庫前端程式時...(比如說...單機作業)
在針對資料表欄位做新增及修改...等等動作時...
是使用:
(1) 直接用資料表的欄位名稱來處理
(2) 直接使用該欄位的相對應元件...如: DBEdit...DBField...等等 可否說明一下...各有何好處或是方便性或是...其它...會讓您使用上面的方
式之一呢? 因為我感到好奇的是....當我使用DBNavigator來做一些動作時,若是針對元件
來做內容的新增或是更新...其實也是都連接到資料表欄位的....
所以才會想到說....到底我用元件來做處理...和用資料表欄位名稱來做處理...
會有什麼不同呢? Thanks!!
|
FrederickPau
資深會員 發表:4 回覆:161 積分:268 註冊:2002-11-04 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 各位先進好.... 請教一下.... 您們在設計資料庫前端程式時...(比如說...單機作業) 在針對資料表欄位做新增及修改...等等動作時... 是使用: (1) 直接用資料表的欄位名稱來處理 (2) 直接使用該欄位的相對應元件...如: DBEdit...DBField...等等 可否說明一下...各有何好處或是方便性或是...其它...會讓您使用上面的方 式之一呢? 因為我感到好奇的是....當我使用DBNavigator來做一些動作時,若是針對元件 來做內容的新增或是更新...其實也是都連接到資料表欄位的.... 所以才會想到說....到底我用元件來做處理...和用資料表欄位名稱來做處理... 會有什麼不同呢? Thanks!!其實你應該這樣問, 用資料感知元件比較好, 還是用一般元件做再自己寫連結比較好(希望沒誤解你的意思) dbedit, dbgrid, dbcombobox 都是與資料庫直接連接, 只要變更資料庫就直接異動, 十分方便, 但因為是直接連結資料庫, 所以資料庫的欄位型態會影響這些元件在異動回資料庫時的判斷, 例如說有一個TDateTime欄位, 你直接掛在dbedit 上輸入, 如果輸入的值不符合TDateTime格式, 那在輸入時就會造成錯誤例外的發生, 所以你必須在資料被確定前先判定值的正確性 如果你用 edit元件, 基本上edit所傳回的都是字串, 所以你可以在post之前先對 edit1.text的內容進行判定, 然後才能回存, 其實這兩種方式都可以做到, 不過寫程式除了要求能降低開發時間外, 還注重程式的精簡, 所以第一種方式是我們常用的方法, 但我比較少用dbgrid來直接做資料的編修, 因為基本上dbgrid不太好控制, 加上對按鍵的掌握也不好, 例如pageup, pagedown, up, down, ctrl-pageup, ctrl-pagedown都會令記錄指標移動, 如果這在編修時就會有很大的問題! 以上提供你參考!! |
SKYSTAR
中階會員 發表:76 回覆:198 積分:64 註冊:2002-06-10 發送簡訊給我 |
各位好.... 不好意思...我可能忘了最主要的一點....這也是您們可能誤解了我的意思了!! 那就是...我指的是在撰寫程式碼的部份....
如:判斷輸入的資料是否符合....如:其它處理的部份...
簡單說...當我是使用資料感知元件時...但是在程式碼中想要對其感知元件所
連到的資料表欄位做處理時...如:讀或寫或其它....
最好的方式...是
(1)使用感知元件的屬性...如:Text....
(2)使用資料表.欄位名稱.... 請問您們會如何選擇呢? Thanks!!
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
引言: 那就是...我指的是在撰寫程式碼的部份.... 如:判斷輸入的資料是否符合....如:其它處理的部份... 簡單說...當我是使用資料感知元件時...但是在程式碼中想要對其感知元件所 連到的資料表欄位做處理時...如:讀或寫或其它.... 最好的方式...是 (1)使用感知元件的屬性...如:Text.... (2)使用資料表.欄位名稱.... 請問您們會如何選擇呢?一般來說: 用一般感知元件會比較好,因為在控制資料型態或輸入的資料數量都較好 控制!!! 當然要寫的程式碼也比較多!!!
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
依我個人看法如果用到dbedit的時候
要作處理就針對欄位名稱 不需要去用到dbedit的屬性
因為既然是感知元件當你的欄位改變時dbedit也會改變
這樣只要專注在欄位上資料的處理即可 不過有一點給你做參考
當你對Ttable,Tquery,Tdatasource,dataControls(dbgrid,dbedit.....)
這3類之間的關係尚未搞懂以前 盡量用非感知元件去做,
不要用感知元件 這樣就不會太依賴感知元件
而且對其中的point也會很清楚的
因為用感知元件的話 只要把屬性設定 資料連結即可
並不需要寫很多程式碼 但是你如果用非感知元件去做資料處理及連結
不但要清楚知道要寫在哪個元件上的Events
對Events觸發的順序也要能夠清楚的了解
對資料庫設計這方面是很有幫助的 天行健
君子當自強不息~~@.@ 發表人 - T.J.B 於 2002/12/02 13:50:30
------
天行健 君子當自強不息~~@.@ |
SKYSTAR
中階會員 發表:76 回覆:198 積分:64 註冊:2002-06-10 發送簡訊給我 |
謝謝各位的回答.... 我目前已知將來在設計時,應從欄位著手,好像比較好,當然啦,對元件部份也是
要並重的...因為有些東東是無法從欄位去著手的,如:欄位屬性是數值時,我就
必須在元件的長度屬性去設定我想要設定的最大長度...等等 除此之外,最主要好像是有一點原因,,,但不知是否正確?
就是如果用欄位來處理大部份的動作時,那天當U/I從DBEDIT改成CHECKBOX或其
它時,其針對該欄位所寫的程式碼,就應當不用去更改了...只要將程式碼部份,
轉貼在適當的地方,就OK了...
但如果當初是用元件來處理的話...一旦欄位所對應的U/I改變時,就必須大動
文章了....!! 以上就是我目前所認知:應該是由欄位來處理大部份的動作...而儘量不去用元
件來處理..... 這樣的觀念是否正確呢? THANKS!
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |