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

DBGrid+DBNavigator的問題

尚未結案
aaprada
一般會員


發表:6
回覆:5
積分:2
註冊:2004-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-19 10:52:58 IP:61.220.xxx.xxx 未訂閱
請教各位大大: 今天我有一個DBGrid配DBNavigator做修改的動作,當修改某三欄欄位的值之後 ,按了DBNavigator的打勾選項(確定修改),對db而言是已經將修改過後的值寫 回去,但我要卡一個條件(即跳出一個message,如果user按了否,則rollback, 按了是則寫到db內),請問我該在那個事件下寫,並怎樣做? 目前小弟是用delphi7配oracle9,db跟ap不同台電腦,我用了table加上data- source兩個物件,為什麼每次我的DBGrid不會自動refresh?(假設我有新增一筆 資料,它不會馬上秀出來,一定要等我結束程式再進去才會出現此筆資料),是 那個地方沒設定好嗎? 感激不盡!!
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-19 13:28:25 IP:219.129.xxx.xxx 未訂閱
引言: 請教各位大大: 今天我有一個DBGrid配DBNavigator做修改的動作,當修改某三欄欄位的值之後 ,按了DBNavigator的打勾選項(確定修改),對db而言是已經將修改過後的值寫 回去,但我要卡一個條件(即跳出一個message,如果user按了否,則rollback, 按了是則寫到db內),請問我該在那個事件下寫,並怎樣做? 在要新增的 TTable/TQuery 等的 OnBeforePost用如下的代码: begin if MessageDlg('确定要增加吗?', mtConfirmation, [mbYes, mbNO], 0)=mrNo then Abort; end; 目前小弟是用delphi7配oracle9,db跟ap不同台電腦,我用了table加上data- source兩個物件,為什麼每次我的DBGrid不會自動refresh?(假設我有新增一筆 資料,它不會馬上秀出來,一定要等我結束程式再進去才會出現此筆資料),是 那個地方沒設定好嗎? 将RequestLive设为True试试 感激不盡!!
——行径窄处,留一步与人行—— ========================= 为什么,经过多年以后,得失的过程如此冷漠 =========================
aaprada
一般會員


發表:6
回覆:5
積分:2
註冊:2004-05-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-19 15:36:47 IP:61.220.xxx.xxx 未訂閱
将RequestLive设为True试试 不好意思,我找不到這個屬性,請問它是在那個物件底下?
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-19 19:05:45 IP:219.129.xxx.xxx 未訂閱
引言: 将RequestLive设为True试试 不好意思,我找不到這個屬性,請問它是在那個物件底下?
sorry,没说清楚,用于TQuery,如Query1.RequestLive:=true; 如果你是用DBNavigator控制增加,我试了没问题,按“ ”先增加一空记录,添加内容,再按打勾选项,没问题啊,你是不是在dataset的beforepost 或afterpost写了其他的内容 ——行径窄处,留一步与人行—— ========================= 为什么,经过多年以后,得失的过程如此冷漠 =========================
aaprada
一般會員


發表:6
回覆:5
積分:2
註冊:2004-05-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-20 10:04:31 IP:211.21.xxx.xxx 未訂閱
謝謝deity大大的講解: BUT....小弟使用的是Table加DataSource的物件,而不是用QUERY這個物件, 難道是ORACLE的問題?(ORACLE新增資料不是要按COMMIT的動作?) 每次都是離開程式再登入才會出現剛剛新增的資料.... 再補充一個問題,假設我的一個PROJECT內已經有15個FORM(FORM1到FORM15) ,每次程式執行時都會先跑FORM1的畫面,今天我要再加一個FORM16,但我要 程式先跑FORM16,請問我該如何做呢?
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-20 11:38:49 IP:218.15.xxx.xxx 未訂閱
aaprada你好: 选Project——> Options——>Main form——>选择Form16即可 或 将form16移入Available forms即不让他自动建立,这时的Main form 还是form1,然后中程序的工程文件(.dpr)中,具体写法,可参照下面: {$R *.res} begin form16:=TForm16.Create(application); form16.ShowModal; if form16.ModalResult=1 then begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end; end. unit16 uses unit1; procedure TForm16.Button1Click(Sender: TObject); begin modalresult:=mrok; end; 只是做了一个小小的试范,我想你可能是做login窗口,可查询站内其他写法,试试看! ——行径窄处,留一步与人行—— ===== 为什么,经过多年以后,得失的过程如此冷漠 为什么,经过多年以后,风干的伤口心痛依旧 發表人 - deity 於 2004/05/20 16:06:50
tgho
一般會員


發表:3
回覆:14
積分:8
註冊:2003-03-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-24 19:57:41 IP:210.243.xxx.xxx 未訂閱
procedure TForm1.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn); begin case button of nbPost:begin //在這邊可以處理存檔前 自己下的判斷式 //如果不存擋可以下 abort; end; end; end;
系統時間:2024-05-18 22:38:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!