呵呵,程序写的有问题喽。看看这个button执行了什么不正确的操作?

解决方案 »

  1.   

    我的code如下:
    procedure TForm8.Button2Click(Sender: TObject);
    var
    sbookno:Integer;
    snewstud:Integer;
    begin
    sbookno:=strtoint(dbedit4.Text);
    with datamodule9.BookTable do
    begin
    close;
    IndexFieldNames:='bookid';
    readonly:=false;
    open;
    findkey([sbookno]);
    end;
    if datamodule9.booktable.fieldbyname('bookstatus').asboolean=true then
    {如果此书已被预约}
    begin
    with datamodule9.BookTable do
    begin
    edit;
    setFields([nil,nil,nil,nil,nil,true,false]);
    post;
    end;
    with datamodule9.recordtable do
    beginindexfieldnames:='bookid';
    open;
    findkey([sbookno]);
    snewstud:=datamodule9.recordtable.fieldbyname('orderstudent').asinteger;
    datamodule9.RecordTable.Edit;
    datamodule9.RecordTable.SetFields([nil,nil,snewstud,null,null,false,false]);
    datamodule9.RecordTable.post;
    end;
    end
    else  {如果图书未被预约}
    begin
    with datamodule9.BookTable do
    begin
    edit;{修改图书记录中的借阅和预约状态字段值}
    setFields([nil,nil,nil,nil,nil,false,false]);
    post;
    end;
    with datamodule9.recordtable do
    beginindexfieldnames:='bookid';
    open;
    {根据书号让记录指针指向借阅此图书的记录}
    Findkey([sbookno]);
    Delete; {删除借阅此图书的记录}
    post;
    end;
    end;
    showmessage('恭喜,已经归还图书');
    end;