線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2081
推到 Plurk!
推到 Facebook!

如何多個表單連結同一筆資料,資料更新,表單自動效率更新!

答題得分者是:Stallion
weston
一般會員


發表:8
回覆:7
積分:3
註冊:2007-02-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-08 21:24:09 IP:218.174.xxx.xxx 訂閱

想請問有經驗的前輩,忽然有個問題想法,不知道如何有效率解決,如題所示,在程式上有多個Form會連結資料表格,當表格資料更新,
有辦法即時更新所有有用到更新表格的Form嗎?因為Form使用很多,所以一但資料更新,Form顯示資料也必須逐一去檢查更新,想請問有
沒有較好的辦法去處理更新界面資料顯示? 最後 謝謝熱心人士的回覆!
編輯記錄
taishyang 重新編輯於 2007-09-10 09:33:58, 註解 將文章分類成[問題]‧
Stallion
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-09 20:32:24 IP:211.22.xxx.xxx 未訂閱
1.小弟寫過類似的功能,就是資料庫被更新時,希望其他各個Client中各視窗使用到資料庫資料並顯示的VCL元件,能夠同步更新資料。
2.在 Indy Server及Client元件盤分別有個 TIdIPMCastServeru以及TIdIPMCastClient元件,該元件係利用多點傳送協定,至於多點傳送小弟無法在此介紹(你可以稍加研究瞭解其作法,那麼元件用起來會比較順手),你可以利用這兩個元件,將每個AP都變成本身既是SERVER也是CLIENT,那麼當AP中某個(或多個)FORM異動了資料,就從AP中發出自訂的訊息,利用多點傳送發給每個同樣的AP,讓其他與自己本身的AP收到自訂的訊息後,讓自身中的每個FORM重新去資料庫重新讀取資料。
3.請參考~
===================引 用 weston 文 章===================
想請問有經驗的前輩,忽然有個問題想法,不知道如何有效率解決,如題所示,在程式上有多個Form會連結資料表格,當表格資料更新,
有辦法即時更新所有有用到更新表格的Form嗎?因為Form使用很多,所以一但資料更新,Form顯示資料也必須逐一去檢查更新,想請問有沒有較好的辦法去處理更新界面資料顯示?
最後 謝謝熱心人士的回覆!
SwingGuppy
初階會員


發表:1
回覆:18
積分:38
註冊:2006-12-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-09 21:06:19 IP:61.62.xxx.xxx 訂閱
有另一種比較苟且的方法,

是在FormActive時先close table,再 open一次,

也就是只有獲得焦點的Form會Refresh,

不過用這種方式要注意,只能讓User看到作用中的Form,

其他的Form要躲到後方去。
------
受人點滴,湧泉以報。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-10 12:28:45 IP:61.67.xxx.xxx 未訂閱
資料庫都有一個特性,當資料庫被開啟時,都會有不等量的記錄被載入前台的記憶體中,也就是不論後台如果異動資料,前台都還是維持原有的BUFFER內容,除非自己去UPDATE,就你的個案來說,每一個FORM要去處理這應是很正常的現象,但你要考量的不是FORM的更新問題,而是如果是一個CLIENT-SERVER架構時,在多台上如何去通知各台更新的問題,一般我都會用一個TIMER來做,當資料在瀏覽模式(dsBrowse),則啟動Timer每隔一個定時就關閉資料庫,再重開資料庫(或者使用update, refresh, 不過有時沒有效果),這樣一定可以確保資料被重新下載,但要注意,如果該台正在異動中時,TIMER是一定要關閉的,否則一旦進行更新,那正在異動的記錄就大江東去了~~
VICSYS
初階會員


發表:21
回覆:64
積分:32
註冊:2002-10-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-11 00:50:16 IP:59.105.xxx.xxx 未訂閱
這個例子! 很簡單把所有的表單 DataAware 元件 的 DataSource 指到同一個!
不過! 我以為 兩個相同的表單, 顯示不同的資料, 不是本來就應該這樣嗎?
就算是 開二個 相同的程式! 一個程式異動完, 另一個程式也不需要同步顯示啊!
要不然 開二個 相同的程式是做什麼? 一個顯示 A* 一個顯示 AA* 的資料,
如果改 AA123 的資料, 那麼, 兩程式要同步顯示?
我是沒有碰過客戶這個要求, 除非是有即時性的資料, 那觀念上是 Refresh!
weston
一般會員


發表:8
回覆:7
積分:3
註冊:2007-02-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-09-17 01:30:15 IP:218.174.xxx.xxx 訂閱
謝謝各位大大的指點,由於積分只能給一位,只好先給先回答的大大版主,不同的Form由於可能顯示同樣的table但欄位僅部分相同,所以才突發奇想,想說沒有有比較偷工的方式可以更新畫面,畢竟資料庫更新,畫面更新必須在額外處理,甚至有時候會漏掉沒有注意應該更新的畫面,因為之前玩遊戲看到遊戲畫面雖然Form很多,更新好像很easy,所以才突發奇想說不定介面有屬性可以知道資料庫 Table內容已經修改,能觸動介面的更新,最後謝謝大大提共寶貴的意見!
系統時間:2024-05-17 18:08:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!