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

資料庫dataset 問題.

尚未結案
tidal
初階會員


發表:93
回覆:32
積分:25
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-16 20:33:11 IP:221.124.xxx.xxx 未訂閱
假如我用2個dataset, 分別是dataset1, dataset2. 每個dataset都把'customer'這個table全部的資料select下來. 假如dataset1把其中一個record改了.那另一個dataset會知道嗎? 如果不知道, 有什麼辨法可以知道? 還有的是, 假如做不到. 是不是要做locking才可以使資料一致?delphi用什麼method可以做到data locking? 另外一個問題是. 假如當已連接的database因為網絡問題而中斷. 這樣的情況要如何處理? 我是新手. 問題比較多. 請大大多多幫忙^^ 發表人 - tidal 於 2004/10/16 20:34:34
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-16 21:22:57 IP:211.74.xxx.xxx 未訂閱
1.用離線方式取得資料(clientdataset),會發生你問的問題,A在改資料,B並不會知道 2.如果你是用Tquery等元件取資料,當A在修改狀態時,B只能為讀取資料 這樣資料就能確保一制性,缺點就是A lock table了, 3.如要用離線方式取得資料(clientdataset),但要知道別人是否已經改資料了 通常我都用在table加一欄位表示資料修改時間,直接讀取他的值跟你dataset中的值是否不一樣了,就知道別人是否已修改 星期一,星期二...星期日..星期一..無窮迴圈@@
------
星期一,二...無窮迴圈@@
tidal
初階會員


發表:93
回覆:32
積分:25
註冊:2003-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-17 00:38:26 IP:221.124.xxx.xxx 未訂閱
引言: 1.用離線方式取得資料(clientdataset),會發生你問的問題,A在改資料,B並不會知道 2.如果你是用Tquery等元件取資料,當A在修改狀態時,B只能為讀取資料 這樣資料就能確保一制性,缺點就是A lock table了, 3.如要用離線方式取得資料(clientdataset),但要知道別人是否已經改資料了 通常我都用在table加一欄位表示資料修改時間,直接讀取他的值跟你dataset中的值是否不一樣了,就知道別人是否已修改 星期一,星期二...星期日..星期一..無窮迴圈@@ < face="Verdana, Arial, Helvetica"> 請問大大, 如果我用SQL直接改資料而不用TQuery. 是不是會產生資料不一致的問題? 還有我用ADO作連接. 用ADOQuery 也會lock table嗎? 最後,假如我已經從database拿下資料放在dataset.但因為網絡問題而中斷資料庫的連接. 而再用dataset去update資料時會發生什麼問題?. 這樣的情況要如何處理比較好? 有沒有方法可以real-time知道資料庫是不是還在連接? 感謝大大的幫忙^^
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-19 11:59:58 IP:220.134.xxx.xxx 未訂閱
幾個建議, 有錯請指正 連線方式偵測可利用 ADOCONNECTION的STATE屬性 或利用ONDISCONNECT事件來顯示訊息獲知 將ADOQUERY的CURSORTYPE設為ctDynamic 則可即時更新使用者資料 如果離線再連線作整批更新,建議採用 UPDATABATCH方式處理 ========================= 讀萬卷書~不如來K.TOP走一遭 =========================
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-20 17:00:38 IP:218.163.xxx.xxx 未訂閱
1.關於斷線偵測與離線更新資料likush兄已說明 2.查覺資料是否已被更改,同我之前發文的,另外也可用CURSORTYPE設為ctDynamic 這樣他會定期去看資料是否已被更新,缺點是網路round-trip多,這可就要你自己 取捨,看是要在資料更新前自己去看資料是否已被更新,還是由ado幫你做... 3.adoqury的LockType 選ltOptimistic或ltBatchOptimistic只在資料更新瞬間lock資料表(batch允許批次更新),如果選ltOptimistic,那在query進入edit mode時就會lock資料表了,缺點是lock時間可能太久.. 星期一,星期二...星期日..星期一..無窮迴圈@@
------
星期一,二...無窮迴圈@@
系統時間:2024-06-29 6:04:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!