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

如何讓DBGrid1能立即顯示更新的新值

 
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-07 17:52:33 IP:61.221.xxx.xxx 未訂閱
請問各位先進: 我用Form1開了一個DBGrid1的瀏覽畫面 當使用點選「修改」按鈕後,則開啟Form2修改資料 當在Form2使用者修改完畢,按下「儲存」按鈕後,執行儲存 ADOTable1.UpdateBatch; 並回到Form1 Form1.FormStyle:=fsMDIChild; Form1.Show; Form1.Caption := '個人院訊'; Form1.WindowState:=wsMaximized; 但剛剛所修改的並沒有在Form1顯示出新值,Form1的DBGrid1仍然顯示的是舊值,請問如何讓DBGrid1能依修改值顯示最新的鍵入值?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-07 18:00:19 IP:218.32.xxx.xxx 未訂閱
試試小弟拙著: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26355
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-07 18:03:15 IP:61.220.xxx.xxx 未訂閱
因為你FORM1的DBGRID1的資料還是BUFFER內的內容 當然不會看到更新後的值 你必須在FORM1開啟前 把FORM1的DBGRID1所連結的DATASET要REFLASH 也可以把DATASET 的元件做 CLOSE; OPEN; 這兩個的動作即可 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-07 18:14:28 IP:218.16.xxx.xxx 未訂閱
你是否在 Form2 使用了另一組 dataset 來作修改 ?若是的話 Form1 的 dataset 是不知道已修改的。    若你可以讓 Form2 使用同一組 DataSet , Form1 的元件應會立即知道的    Form2. ShowModel 之加入 Form2.DataSources1.DataSet := Table1; 這樣 Form2 便不用另開 DataSet 並可使所有用 Table1 的元件都即時反映改變。
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-07 18:19:23 IP:61.221.xxx.xxx 未訂閱
這個方法,曾經試過,但回到Form1時仍然是舊資料 procedure TForm2.SpeedButton8Click(Sender: TObject); var Emp_No: String; begin ADOTable1.UpdateBatch; ADOTable1.Close; ADOTable1.Open; Form1.FormStyle:=fsMDIChild; Form1.Show; Form1.Caption := '個人院訊'; Form1.WindowState:=wsMaximized; end;
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-07 18:23:06 IP:61.221.xxx.xxx 未訂閱
請問一下Mickey版主,在您設計的「資料異動廣播元件」如果要測試上面的ADO功能,我該如何連結到您的測試資料,找了一下,好像沒說明文件?
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-07 18:45:10 IP:61.221.xxx.xxx 未訂閱
試了一下的方法,仍然不行,有誰知道問題出在那裡,今天試了一天啊
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-07 20:56:12 IP:218.32.xxx.xxx 未訂閱
對不起, 未完成其相關說明文件 < class="code"> 1. Install MyADOConnection : 1.1 Delphi -> Component -> Install Component... 1.2 選擇解壓縮後之 MyADOConn.pas 1.3 ADO 元件盤 會多一個 MyADOConnection 元件. 2. 用 MyADOConnection 取代 原 ADOConnection 元件. 3. 將 ADOTable 改用 ADOQuery (select * from [TableName]). 4. ADOQuery 資料異動後,呼叫 MyADOConnection.Broadcast method 如 : MyADOConnection.Broadcast([TableName]); PS. 該元件 for D6, D7 有問題(因運用 indy 網路元件 TIdUDPServer) 發表人 - Mickey 於 2003/05/07 21:01:00
suckin
一般會員


發表:13
回覆:26
積分:7
註冊:2003-06-16

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