adoquery1.SQL.Clear;
adoquery1.SQL.Add('select a.*,b.*,c.* from 图书借阅 a,图书信息 b,读者信息 c');
adoquery1.SQL.Add('where (a.图书编号=b.图书编号)and(a.读者编号=c.编号)and(状态=''未还'')'); adoquery1.SQL.Add('and(c.编号 like ''%'+edit1.Text+'%'')'); adoquery1.SQL.Add('and(a.图书编号 like ''%'+edit2.Text+'%'')'); adoquery1.SQL.Add('and(c.姓名 like ''%'+edit3.Text+'%'')'); adoquery1.Open;
//将查询得到的数据复制到数据表中 adotable1.Clone(adoquery1,ltUnspecified); end;
procedure TbookbackF.BitBtn2Click(Sender: TObject); var
returndate:TDateTime; money:double; fine,num:string; begin inherited;
returndate:=adotable1.FieldByName('应还时间').AsDateTime; num:=adotable1.FieldByName('借阅编号').AsString; //搜索数据库中有无此书
if num='' then showmessage('已无此书'); if (date+time-returndate)>0 then begin
//超期图书按每天0.1元交纳罚金 money:=0.1*(date-returndate);
fine:= InputBox('该书已经过期,需交纳罚金', '应交纳的罚金', floattostr(money)); adocommand1.CommandText:='exec sf_图书归还 '+num+','+fine; end else
adocommand1.CommandText:='exec sf_图书归还 '+num+',0'; adocommand1.Execute; //更新数据库
adoquery1.Active:=false; adoquery1.Active:=true;
adotable1.Clone(adoquery1,ltunspecified);
//注销掉从父窗体中继承来的代码,因为父窗体中是从一个表中查询的,这里因为需要用到多表查询
//inherited; adoquery1.Close; adoquery1.SQL.Clear;
adoquery1.SQL.Add('select a.*,b.*,c.* from 图书借阅 a,图书信息 b,读者信息 c');
adoquery1.SQL.Add('where (a.图书编号=b.图书编号)and(a.读者编号=c.编号)and(状态=''未还'')');
adoquery1.SQL.Add('and(c.编号 like ''%'+edit1.Text+'%'')'); adoquery1.SQL.Add('and(a.图书编号 like ''%'+edit2.Text+'%'')'); adoquery1.SQL.Add('and(c.姓名 like ''%'+edit3.Text+'%'')'); adoquery1.Open;
//将查询得到的数据复制到数据库中 adotable1.Clone(adoquery1,ltUnspecified);