ADOQuery1.Edit錯誤問題 |
尚未結案
|
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
我的table有以下的Field:LotNo,InvoiceNo,term,cashed,trafer,balance,LastUpdate
執行以下語法會出現錯誤:
ADOQuery1.Locate('InvoiceNo',ListArray[i],[loPartialKey]);
if not ADOQuery1.Eof then
begin
ADOQuery1.Edit;
ADOQuery1.FieldByname('cashed').AsCurrency := ADOQuery1.FieldByname('total').AsCurrency;
ADOQuery1.FieldByname('tranfer').AsCurrency := 0;
ADOQuery1.FieldByname('balance').AsCurrency := 0;
ADOQuery1.FieldByname('LastUpdate').AsDatetime := Date();
ADOQuery1.Post;
end;
錯誤訊息是:”更新或重整所需的索引鍵資料行資訊不足”
請問這是什麼原因啊~~~~ 謝謝大家幫忙~
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好: 我猜想這是因為 ADO 在你要操作的資料表中找不到唯一的鍵值。 因此它無法判斷哪一個紀錄才是你要修改的紀錄。 RecNo Field1 Field2 Field3 Field4 Field5 1 1 1 男 61/04/14 1 2 56 2 女 63/01/23 2 3 3 1 男 56/07/31 3 4 14 3 男 62/01/18 5 5 1 1 男 61/04/14 1 請看上例,5 筆記錄中是否有兩筆 (1, 5) 相同,如果你今天要 修改第五筆中的資料,當你 Post 後,ADO 會產生適當的 SQL 敘述傳 到資料庫以完成修改(Update Table1 Set Field2=2 Where Field1=1 and Field2 = 1 and Field3 = '男' and Field4=#61/04/14# and Field5 = 1)。但此時 ADO 發現第 1 筆與第 5 筆資料相同導致無法產 一個唯一的敘述去修改資料記錄,所以會產生這個錯誤。 所以在設計資料表時,PK 是很重要的。他是讓資料庫辯識唯一紀錄 的重要索引。 |
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |