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

ADOQuery 儲存問題

尚未結案
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-16 17:31:28 IP:203.162.xxx.xxx 未訂閱
Form1中有放 DBEdit1: ShipperID, DBEdit2 : Name, DBEdit3: Address, DBEdit4: Tel, DBEdit5: Fax ADOQuery1:使用者搜尋出來的結果, DataSource1 : ADOQuery1 DBNavigator1: DataSource1 每當增加新的一筆資料後,儲存後,最後輸入的Fax資料變不見,就是沒有儲存進去.要再按Edit後從輸入fax資料才OK. 想了好久都不知道為什麼會這樣....
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-20 01:12:37 IP:203.204.xxx.xxx 未訂閱
引言: Form1中有放 DBEdit1: ShipperID, DBEdit2 : Name, DBEdit3: Address, DBEdit4: Tel, DBEdit5: Fax ADOQuery1:使用者搜尋出來的結果, DataSource1 : ADOQuery1 DBNavigator1: DataSource1 每當增加新的一筆資料後,儲存後,最後輸入的Fax資料變不見,就是沒有儲存進去.要再按Edit後從輸入fax資料才OK. 想了好久都不知道為什麼會這樣....
selina 你好 一般正常來講,是不會有你所說的狀況發生的,但是Windows的程式,輸入的觸發點太多了,不像Dos程式只有單一操作流程,比較好控制。再加上看不到程式碼真的很難判斷到底問題出在那?只能假設性的方式來找問題的原因。想的到可能原因: 是不是在DBEdit4.Onexit事件中或任何其他事件中有對於dbEdit5的設定動作,如 dbEdit5.text := dbEdit4.Text;//這是比較用的設方式(傳真號碼預設與電話相同) 若是如此,請改用 if Adoquer1.State IN [dsInsert,dsEdit] Then AdoQuery1.FieldByName('fax').AsString := dbEdit4.Text ; 可以的話,請再描述的詳細一點(好像在猜迷一般)
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-20 10:02:14 IP:203.162.xxx.xxx 未訂閱
不好意思沒把程式寫出來: procedure TShipperForm.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); begin if Button = nbInsert then ADOQuery1.Append else if Button = nbEdit then ADOQuery1.Edit; end; procedure TShipperForm.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn); begin if Button = nbPost then begin ADOQuery1.FieldByname('userID').AsString := userID; ADOQuery1.FieldBYname('inputDate').AsDatetime := Date(); end else if Button = nbCancel then ADOQuery1.UpdateRecord; end; 這樣的寫法是不是不正確啊?
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-20 10:47:57 IP:211.74.xxx.xxx 未訂閱
Hi selina 您好: 我習慣觸發點放在ADOQuery 物件上, 您試試看 只用下列 code , 取代原來的code試試看    
procedure TForm1.ADOQuery1BeforePost(DataSet: TDataSet);
begin
 ADOQuery1.FieldByname('userID').AsString := userID;
 ADOQuery1.FieldBYname('inputDate').AsDatetime := Date();
end;
~悠遊法國號~
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-20 11:07:59 IP:203.162.xxx.xxx 未訂閱
謝謝yachanga, 之前沒想到要這樣寫,原來DBNavigator.BeforeAction和AQUEry.BeforePost有差的. 謝謝囉~
系統時間:2024-09-12 12:10:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!