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

搞不清楚的錯誤訊息...

答題得分者是:ha0009
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-28 16:26:33 IP:218.165.xxx.xxx 未訂閱
小弟在執行下列程式時總是會出現錯誤,訊息為“您要變更資料表,由於會對索引、主索引鍵或關聯產生重覆的值,所以不會成功,變更欄位的資料或變更那些包含重覆資料的欄位,移除索引或重新定義索引以允許重覆索引值“,我不明白所指為何此程式只有 class="code"> procedure tform10.overcheck(Sender: TObject); //逾期檢查 var bookname: string; overdays: double; begin with datamodule3 do begin while not adoquery1.Eof do begin bookname := adoquery1.fieldbyname('書名').Value; adoquery2.Close; adoquery2.SQL.Clear; adoquery2.SQL.add('select * from 書籍資料 where 書名 =' #39 bookname #39); adoquery2.Open; overdays := now - adoquery1.fieldbyname('借閱日期').Value; if (overdays >= adoquery2.fieldbyname('可借天數').Value) then begin overdays := overdays - adoquery2.fieldbyname('可借天數').Value; adoquery6.sql.Clear; adoquery6.sql.add('insert into 逾期記錄(姓名,學號,借閱日期,書名,逾期天數)values(v1,v2,v3,v4,v5)'); adoquery6.Parameters.ParamByName('v1').Value := adoquery1.fieldbyname('姓名').Value; adoquery6.Parameters.ParamByName('v2').Value := adoquery1.fieldbyname('學號').Value; adoquery6.Parameters.ParamByName('v3').Value := adoquery1.fieldbyname('借閱日期').Value; adoquery6.Parameters.ParamByName('v4').Value := adoquery1.fieldbyname('書名').Value; adoquery6.Parameters.ParamByName('v5').Value := overdays; adoquery6.ExecSQL; end; end; end; end; 發表人 - nachi 於 2003/06/28 16:27:56 發表人 - nachi 於 2003/06/28 16:29:44
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-28 18:39:07 IP:61.56.xxx.xxx 未訂閱
你好: 這是你的 "逾期記錄" 資料表內的主索引或是唯一索引出現重複的值所引起。 如果是主索引的問題,那不是自己產生唯一的編號,就是使用資料庫本身的序號產生機制。 如果是唯一索引的問題,不是放寬欄位設定就是修改你的新增修改程序。
系統時間:2024-05-18 5:34:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!