小弟在執行下列程式時總是會出現錯誤,訊息為“
您要變更資料表,由於會對索引、主索引鍵或關聯產生重覆的值,所以不會成功,變更欄位的資料或變更那些包含重覆資料的欄位,移除索引或重新定義索引以允許重覆索引值“,我不明白所指為何
![]()
此程式只有 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