線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1315
推到 Plurk!
推到 Facebook!

ADOQuery1.Edit錯誤問題

尚未結案
selina
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-10 12:54:43 IP:203.162.xxx.xxx 未訂閱
我的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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-10 14:21:00 IP:61.56.xxx.xxx 未訂閱
你好:
  我猜想這是因為 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-10 14:49:12 IP:203.162.xxx.xxx 未訂閱
我檢查過了,InvoiceNo沒有duplicate
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-10 14:56:41 IP:63.84.xxx.xxx 未訂閱
您好﹗    小弟覺得您可在ADOQuery1.Edit;的語法之后加上指定鍵值欄位值(LotNo或者InvoiceNo)試試看﹒    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
selina
一般會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-10 14:59:49 IP:203.162.xxx.xxx 未訂閱
Ha0009你好, 原來我忘了設InvoiceNo為Primary Key,所以才會發生error. anyway謝謝Ha0009~
系統時間:2024-05-02 20:51:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!