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

請問一下bug

答題得分者是:andersonhsieh
kenji
一般會員


發表:32
回覆:44
積分:20
註冊:2002-08-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-09-05 15:15:48 IP:61.217.xxx.xxx 未訂閱
if befilm>film then begin befilm2:=befilm-film; DataModule1.ADOTable3.First; showmessage('OK'); while not DataModule1.ADOTable3.Eof do begin if i<=befilm2 then begin i:=i 1; DataModule1.ADOTable3.Delete; end else DataModule1.ADOTable3.Next; end; showmessage('OK2'); end; 請問一下我醬子寫有錯嗎~~~showmessage('OK');還出得來,到了showmessage('OK2');就出不來了,就當在那好像是DataModule1.ADOTable3.Delete;錯的???請高手幫我抓蟲 錯誤訊息: 『Project XXX.exe raised exception class EOlException with message '鍵欄位資訊不足或不正確;太多列被更新所影響。'.Process stopped. Use Step or Run to Continues.』
kenji
一般會員


發表:32
回覆:44
積分:20
註冊:2002-08-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-05 15:30:30 IP:61.217.xxx.xxx 未訂閱
我po清楚一點好了      DataModule1.ADOTable3.First;        befilm:=0;      while not DataModule1.ADOTable3.Eof do      begin           befilm:=befilm+1;  //計算之前的筆數           DataModule1.ADOTable3.Next;     end;     i:=1;     if befilm>film then  //如果之前的筆數大於現在的筆數     begin          befilm2:=befilm-film;  //計算大了幾筆          DataModule1.ADOTable3.First;          showmessage('OK');  //測試          while not DataModule1.ADOTable3.Eof do //刪除多的筆數          begin               if i<=befilm2 then               begin                    i:=i+1;                    DataModule1.ADOTable3.Delete;               end               else                    DataModule1.ADOTable3.Next;          end;     showmessage('OK2');  //測試     end     else if befilm
delphiwww
資深會員


發表:145
回覆:363
積分:368
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-05 16:40:45 IP:202.145.xxx.xxx 未訂閱
你可能需要更新delphi至update2
引言: 我po清楚一點好了 DataModule1.ADOTable3.First; befilm:=0; while not DataModule1.ADOTable3.Eof do begin befilm:=befilm 1; //計算之前的筆數 DataModule1.ADOTable3.Next; end; i:=1; if befilm>film then //如果之前的筆數大於現在的筆數 begin befilm2:=befilm-film; //計算大了幾筆 DataModule1.ADOTable3.First; showmessage('OK'); //測試 while not DataModule1.ADOTable3.Eof do //刪除多的筆數 begin if i<=befilm2 then begin i:=i 1; DataModule1.ADOTable3.Delete; end else DataModule1.ADOTable3.Next; end; showmessage('OK2'); //測試 end else if befilm < face="Verdana, Arial, Helvetica">
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-05 17:12:37 IP:203.204.xxx.xxx 未訂閱
引言: 錯誤訊息: 『Project XXX.exe raised exception class EOlException with message '鍵欄位資訊不足或不正確;太多列被更新所影響。'.Process stopped. Use Step or Run to Continues.』
看錯誤訊息應該是沒有設Primary Key的關係。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
kenji
一般會員


發表:32
回覆:44
積分:20
註冊:2002-08-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-09-08 22:58:58 IP:61.217.xxx.xxx 未訂閱
delphiwww 說要更新delphi至update2,是指啥咧???? jieshu 說要設Primary Key,又是指啥丫??? 可否請各高手說清楚一點,我不懂耶~~~~
ccjason
一般會員


發表:4
回覆:22
積分:20
註冊:2002-04-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-09-08 23:14:35 IP:61.70.xxx.xxx 未訂閱
Primary Key是指您的資料庫要設定主鍵,如此資料才不會重複 看錯誤訊息應該是jieshu兄講的,你下Delete時資料庫有超過一筆資料是一樣的 因此你要看使用什麼資料庫,或下SQL指令來Delete資料
kenji
一般會員


發表:32
回覆:44
積分:20
註冊:2002-08-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-09-08 23:34:05 IP:61.217.xxx.xxx 未訂閱
資料庫是使用Access的,而SQL要怎麼下delete呢~~~~Delete時資料庫有超過一筆資料是一樣的???醬子就不能刪了嗎??? 可是delete不是也可以用while嗎~~如... while not ADOTable1.eof do ADOTable1.delete; 醬子不是ok嗎??怎麼會說資料庫超過一筆資料就不能刪了呢???
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-09-09 13:39:38 IP:203.204.xxx.xxx 未訂閱
引言: 資料庫是使用Access的,而SQL要怎麼下delete呢~~~~Delete時資料庫有超過一筆資料是一樣的???醬子就不能刪了嗎??? 可是delete不是也可以用while嗎~~如... while not ADOTable1.eof do ADOTable1.delete; 醬子不是ok嗎??怎麼會說資料庫超過一筆資料就不能刪了呢???
是有兩筆以上一樣的資料,這樣刪會有問題(Delphi的刪除或更新一次只能一筆同樣的),所以說要設主鍵,下SQL刪除如下: Delete from TableName where KeyField = ....
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-09-09 14:47:25 IP:211.20.xxx.xxx 未訂閱
這是因為你如果沒有唯一鍵,則有一個問題,當你的ADOTABLE抓回10筆資料後,你下ADOTABLE.DELETE時會到資料庫找相對應的那筆資料將其刪除,但你所有的欄位加起來都找不到唯一的一筆資料時就產生以上的錯誤訊息,解決辦法就是如ccjason兄說的自己下SQL去刪除資料,因為唯有自己下SQL去刪除才可以避免以上問題 @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
系統時間:2024-04-28 21:03:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!