说明:
本人正在做一个图书管理系统,我想在还书时还书表会增加一条记录,同时在借书表中会删除(与还书表图书标号相同)一条记录,
发现有错误:adotable1 can not perform this operation on the closed dataset
借书表中我有有记录啊,不知道为什么,请大家看看。
代码如下:
procedure TForm7.BitBtn1Click(Sender: TObject);
begin
if edit4.Text='' then showmessage('请输入图书编号')
else
if not adotable3.Locate('bookid',edit4.Text,[]) then
showmessage('图书馆没有该书!')
else if adotable3.FieldByName('ifexist').Value=1 then
showmessage('这本书已经被归还!')
else
begin
adotable2.Edit;
adotable3.Edit;
adotable2.Append;
adotable1.Edit;
adotable1.Locate('bookid',edit4.Text,[]); 这是借书表
adotable2.FieldByName('bookid').AsString:=edit4.Text; 还书表
adotable2.FieldByName('studid').AsString:=adotable1.Fields[1].AsString;
adotable2.FieldByName('time').AsString:=edit6.Text;
adotable3.FieldValues['ifexist']:=1; 图书表的在馆状态
adotable1.Delete;
adotable1.Post;
adotable3.Post;
adotable2.Post;
edit4.Text:='';
end;
end;
本人正在做一个图书管理系统,我想在还书时还书表会增加一条记录,同时在借书表中会删除(与还书表图书标号相同)一条记录,
发现有错误:adotable1 can not perform this operation on the closed dataset
借书表中我有有记录啊,不知道为什么,请大家看看。
代码如下:
procedure TForm7.BitBtn1Click(Sender: TObject);
begin
if edit4.Text='' then showmessage('请输入图书编号')
else
if not adotable3.Locate('bookid',edit4.Text,[]) then
showmessage('图书馆没有该书!')
else if adotable3.FieldByName('ifexist').Value=1 then
showmessage('这本书已经被归还!')
else
begin
adotable2.Edit;
adotable3.Edit;
adotable2.Append;
adotable1.Edit;
adotable1.Locate('bookid',edit4.Text,[]); 这是借书表
adotable2.FieldByName('bookid').AsString:=edit4.Text; 还书表
adotable2.FieldByName('studid').AsString:=adotable1.Fields[1].AsString;
adotable2.FieldByName('time').AsString:=edit6.Text;
adotable3.FieldValues['ifexist']:=1; 图书表的在馆状态
adotable1.Delete;
adotable1.Post;
adotable3.Post;
adotable2.Post;
edit4.Text:='';
end;
end;
adotable1.Post;//这句去掉,删除后就自动保存了
adotable1.Post; //这句,在非编辑状态就会出错
adotable1.Post;//这句去掉,删除后就自动保存了
成功了,谢谢大家啦!
adotable1.Delete;
adotable1.Post;//这句去掉