ADOQuery 儲存問題 |
尚未結案
|
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 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 發送簡訊給我 |
不好意思沒把程式寫出來:
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 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |