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

[討論] DB Connection

答題得分者是:change.jian
BorlandUser
中階會員


發表:148
回覆:217
積分:73
註冊:2004-02-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-23 11:07:05 IP:203.185.xxx.xxx 未訂閱
如果用Data Control 的componet去連結DB,這樣當Retrieve record後就不能disconnect,那樣做好嗎?在現實中的db application是否也是一直連著db呢?連著和不連著有什麼好處呢?
change.jian
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-23 13:09:06 IP:61.222.xxx.xxx 未訂閱
您好, 其實Data Control的元件是否一直連著DB,認真說起來,這個問題的答案應該是"沒有",因為Data Control連著的元件最終是TDataSet,而TDataSet是否一直連在DB上,其實並沒有.不管是c/s或3-tire,只要是SQL base的資料庫,通常都是你下一道SQL指令(我指select),然後,DB就依據你的SQL指令把當時資料庫裡的資料傳回給你,至於回傳給你的資料後續有人再異動了,DB是不會把你所得到資料再重新更新的.也就是說,db application不應該一直連著資料庫的,他應該只在user有需要時把目前資料庫的資料回傳給使用者知道而已. 給您參考
BorlandUser
中階會員


發表:148
回覆:217
積分:73
註冊:2004-02-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-23 13:59:43 IP:203.185.xxx.xxx 未訂閱
照你的意思是 無論我用dbgrid/sqlquery/clientdataset/datasetprovider也好...只要我未進行commit/applyupdate或sql statement(insert,update,..)等等,delphi的componet都不會連著db嗎?
change.jian
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-23 17:15:17 IP:61.222.xxx.xxx 未訂閱
引言: 照你的意思是 無論我用dbgrid/sqlquery/clientdataset/datasetprovider也好...只要我未進行commit/applyupdate或sql statement(insert,update,..)等等,delphi的componet都不會連著db嗎?
嗯,如果你用SQL Monitor觀察,會發現所有的在DataSet裡的Append,Delete等動作,BDE也都是幫你轉成SQL指令對資料庫執行的.換言之,你應該把Ap對DB的所有要求都看成是一瞬間的事,而不是一個連續的狀態
BorlandUser
中階會員


發表:148
回覆:217
積分:73
註冊:2004-02-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-23 19:57:40 IP:218.102.xxx.xxx 未訂閱
謝,明白,學了不少 ^_^
系統時間:2024-05-19 12:04:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!