有两个Form,Form1和Form2,Form1中有控件dbgrid1,datasource1,adoquery1,adotable1,dbgrid的数据来自adoquery1,在Form2中有dbgrid2,数据来自form1.adotable1,我在Form2中写delete语句删除一条记录,然后用close和open来刷新form1中的adoquery1,但form1.dbgrid1中显示的还是原来的几条记录,当我删除第二条时,form1.dbgrid1中才把两次删除的记录都除去了,不只到底是怎么回事,请大家帮我想想

解决方案 »

  1.   

    删除后没有运行form1.adotable1.post
      

  2.   

    删除操作要用post吗,不是insert和edit状态啊
      

  3.   

    删除代码如下
    procedure TForm3.Button1Click(Sender: TObject);
    begin
      if not Form1.ADOTable1.FieldByName('Active').AsBoolean then
        Form1.ADOTable1.Delete
        else
        if Application.MessageBox('任务正在执行中,你确定要删除吗?','删除提示',MB_YESNO OR MB_ICONWARNING)=IDYES THEN
        Form1.ADOTable1.Delete;
      Form1.ADOQuery1.Close;
      Form1.ADOQuery1.Open;
    end;
      

  4.   

    to wwx213() 
    在的话帮我看看是哪的问题,先行谢了
      

  5.   

    当然要提交(post),除非autocommit为true
      

  6.   

    有两个Form,Form1和Form2,Form1中有控件dbgrid1,datasource1,adoquery1,adotable1,dbgrid的数据来自adoquery1,在Form2中有dbgrid2,数据来自form1.adotable1,我在Form2中写delete语句删除一条记录,然后用close和open来刷新form1中的adoquery1,但form1.dbgrid1中显示的还是原来的几条记录,当我删除第二条时,form1.dbgrid1中才把两次删除的记录都除去了,不只到底是怎么回事,请大家帮我想想
    Form1.ADOtable1.close;
      Form1.ADOtable2.Open;