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

如何讓TGird因更新資料而及時顯示新的資訊!?

尚未結案
zeke
一般會員


發表:6
回覆:8
積分:2
註冊:2004-02-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-14 23:23:40 IP:61.216.xxx.xxx 未訂閱
我使用ADOQuery的Update更新資料, 請問我該如何讓TGird因我更新資料而及時顯示新的資訊!? 謝謝!!
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-15 00:43:34 IP:218.163.xxx.xxx 未訂閱
請問您是用dbgrid還是stringgrid呢... 如果是dbgrid,在dataset post後,就會更新了 如果是stringgrid,可能需要在dataset的afterpost事件中清空stringgrid的cell並重新填入值.
zeke
一般會員


發表:6
回覆:8
積分:2
註冊:2004-02-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-15 00:53:14 IP:61.216.xxx.xxx 未訂閱
您好 我是用dbgrid,我使用Query的Update作資料更新後DBgrid並沒有更新. 我嘗試使用Query.Requery();卻遇到了一點麻煩.    只要加了Qurey.requery(); 執行後就會出現canot perform this operation on a closed dataset. 使用Query.Active := true;就會出現訊息要我回傳值. 使用Query.ExecSQL;就會出現Command Text does not return a result set.    請前輩指導了.    
引言: 請問您是用dbgrid還是stringgrid呢... 如果是dbgrid,在dataset post後,就會更新了 如果是stringgrid,可能需要在dataset的afterpost事件中清空stringgrid的cell並重新填入值.
kwon
一般會員


發表:14
回覆:64
積分:22
註冊:2002-08-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-15 00:57:59 IP:203.69.xxx.xxx 未訂閱
我想您只要再下一次SQL查詢指令,DBGrid就會更新了吧,若有不對之處請多多指教
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-15 00:59:27 IP:218.163.xxx.xxx 未訂閱
可否說一下你的adoquery的locktype?
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-15 01:04:36 IP:218.163.xxx.xxx 未訂閱
是tquery還是tadoquery呢,兩個還是有差異喔... execsql這個方法是用來執行 update,insert,delete類型的sql 而如果是select類型的sql... tquery 須配合 updatesql元件,通常都設定catchupdate為true,使用applyupdate來批次易動 而tadoquery則要看locktype而定,通常多使用ltBatchOptimistic,使用updatebatch來批次易動 tquery類型的元件算蠻活的,弄清楚後其實蠻好運用的, 有問題再提出來討論討論囉...
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-15 01:18:39 IP:211.76.xxx.xxx 未訂閱
您好: canot perform this operation on a closed dataset==> 在前面加上ADOQuery.avtive:= true; Command Text does not return a result set. 這是因為ADOQuery.ExecSQL沒有回傳直 要用ADOQuery.Open這樣就沒問題了 ~~應無所住而生其心~~
zeke
一般會員


發表:6
回覆:8
積分:2
註冊:2004-02-05

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-15 01:22:14 IP:61.216.xxx.xxx 未訂閱
to kwon  再下一次SQL查詢指令,我試過了,可是也沒更新 >< face="Verdana, Arial, Helvetica">引言: 是tquery還是tadoquery呢,兩個還是有差異喔... execsql這個方法是用來執行 update,insert,delete類型的sql 而如果是select類型的sql... tquery 須配合 updatesql元件,通常都設定catchupdate為true,使用applyupdate來批次易動 而tadoquery則要看locktype而定,通常多使用ltBatchOptimistic,使用updatebatch來批次易動 tquery類型的元件算蠻活的,弄清楚後其實蠻好運用的, 有問題再提出來討論討論囉...
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-02-15 01:27:48 IP:218.163.xxx.xxx 未訂閱
Delphi syntax: TAffectRecords = (arCurrent, arFiltered, arAll, arAllChapters); procedure UpdateBatch(AffectRecords: TAffectRecords = arAll); 預設值arall就是把資料集中所有異動過的紀錄都寫回資料庫...
kwon
一般會員


發表:14
回覆:64
積分:22
註冊:2002-08-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-02-15 08:46:31 IP:203.69.xxx.xxx 未訂閱
不好意思,問一下,您是否使用DBGrid,如果是的話,那DBGrid的DataSource是否有指向使用ADOQuery做Update的ADOQuery,還是指向另一個ADOQuery?
zeke
一般會員


發表:6
回覆:8
積分:2
註冊:2004-02-05

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-02-15 12:45:10 IP:61.216.xxx.xxx 未訂閱
是DBGrid沒錯 DataSource是指向P_storeDataSource P_storeDataSource的DataSet是指向Product_storeTable    kwon 前輩的意思是 我DataSource的DataSet沒指向Product_storeQuery 所以沒有立即更新.這樣的話我懂了.    我想測試看看將DataSource的DataSet指向Product_storeQuery 卻出現其他錯誤所以我放棄了 目前我的解決辦法是 > <>< face="Verdana, Arial, Helvetica">引言: 不好意思,問一下,您是否使用DBGrid,如果是的話,那DBGrid的DataSource是否有指向使用ADOQuery做Update的ADOQuery,還是指向另一個ADOQuery? 發表人 - zeke 於 2004/02/15 12:46:21
系統時間:2024-06-29 16:48:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!