Access資料庫新增一筆資料再度更新時,發生找不到更新列! |
答題得分者是:william
|
mcho
初階會員 發表:57 回覆:106 積分:42 註冊:2002-11-11 發送簡訊給我 |
大家好!我使用Delphi 5 以 Access2000為資料庫 ADO,目前資料已達2萬餘筆
有一個問題一直困擾,就是新增一筆資料UpdateBatch後
再度更新後執行UpdateBatch時,即發生錯誤"找不到更新列,最後讀數已被變更"!
目前我的解決方式,就是執行UpdateBatch之後同時CLOSE再OPEN,但是還要
加一LOCATE指令回到原來那筆資料,太麻煩!
請問那位高手是否有更好解決方法,謝謝!
(我使用元件是ADOQuery)
何明昌 發表人 - mcho 於 2002/12/09 16:32:12 發表人 - mcho 於 2002/12/09 16:37:34 發表人 - mcho 於 2002/12/09 17:59:53
------
何明昌 |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
mcho
初階會員 發表:57 回覆:106 積分:42 註冊:2002-11-11 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
mcho
初階會員 發表:57 回覆:106 積分:42 註冊:2002-11-11 發送簡訊給我 |
引言: I wonder it cannot locate the key for the records. Are all you ADO datasets using the same ADOConnection? If possible, could you give some more details on the table strucutre, and probably some codes for insert and update?William你好! 我只用二個ADO元件如下圖: 檔案結構如下: 1.AccYear:文字,Length=3 2.Accid:文字,Length=9 3.ServiceFee0:單精準數,小數=2,預設=0 4.ServiceFee:單精準數,小數=0,預設=0 key=AccYear+Accid 我會將整個code(test.zip)寄給你,但我不知如何傳給你? 何明昌 發表人 - mcho 於 2002/12/10 12:33:03 發表人 - mcho 於 2002/12/10 12:36:24
------
何明昌 |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
mcho
初階會員 發表:57 回覆:106 積分:42 註冊:2002-11-11 發送簡訊給我 |
引言: Hi mcho, maybe you can uplaod the test to 會員求助程式檔案上傳區. BTW, is there any key in your table? If not, you may want to try creating a key (e.g. using auto number).嗨William Test.zip已上傳了 http://delphi.ktop.com.tw/loadfile.php?TOPICID=7433450&CC=166250 何明昌
------
何明昌 |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
mcho
初階會員 發表:57 回覆:106 積分:42 註冊:2002-11-11 發送簡訊給我 |
引言: Hi mcho, I have no problem is using your program (on W2K Pro SP3, I think I should have the latest MDAC) directly. It also works fine under my copy of Delphi 7 Ent. Maybe you can try on some machines with the latest MDAC?Hi William,測試時新增一筆資料時ServiceFee0,ServiceFee先不輸入資料 先按UpdateBatch後再輸入ServiceFee0欄後再按UpdateBatch試試看 何明昌
------
何明昌 |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Hi mcho, I can reproduce the problem now. It seems that the field ServiceFee0 and ServiceFee cannot get their default values after the insert. Maybe you can fill in the default value before inserting it or just do a ADOQuery1.Refresh (slow...) after the update?
|
mcho
初階會員 發表:57 回覆:106 積分:42 註冊:2002-11-11 發送簡訊給我 |
引言: Hi mcho, I can reproduce the problem now. It seems that the field ServiceFee0 and ServiceFee cannot get their default values after the insert. Maybe you can fill in the default value before inserting it or just do a ADOQuery1.Refresh (slow...) after the update?Hi William, 謝謝!我現在知道了!因為 Access 的欄位(ServiceFee0)預設值為 0而Delphi新增UpdateBatch後欄位(ServiceFee0)卻未帶出,如果我再度更新按UpdateBatch後即出現錯誤,解決之道是不使用Access 的欄位(ServiceFee0)預設值;謝謝! 何明昌
------
何明昌 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |