procedure Tgb_k.SpeedButton2Click(Sender: TObject);
begin
if DM.CDS_gb_01.recordcount <> 0 then
 begin
   if Application.messagebox('请确认是否要删除', '管理系统', mb_iconinformation + mb_yesno) = idyes then
   begin
     DM.CDS_gb_01.delete; 
     DM.CDS_gb_01.applyupdates(0);
end;
 end
 else
 begin
   Application.messagebox('已没有记录可删除,请确认!', '管理系统', mb_iconinformation + mb_defbutton1);
 end;
end;为什么 我点删除时 DBGrid 里面的记录会删掉 便数据库的记录还存在??

解决方案 »

  1.   

    你的DBGrid的数据源指向的数据集不是DM.CDS_gb_01吗?  
    如果不是的话,那就有这个问题存在,那就必须操作一次,刷新一次
      

  2.   

    这种事情发生的情况是,结果集中产生了关联,如果要将指定记录删除,可以用SQL写入
      

  3.   

    下载一个控件,
    http://delphideveloper.myrice.com/docs/tecsubject/midas/tdbnavigatebutton.htm
    很容易实现的,我做的东西就是用的这个东东了,去看看吧
      

  4.   

    procedure Tgb_k.SpeedButton2Click(Sender: TObject);
    begin
    if DM.CDS_gb_01.recordcount <> 0 then
     begin
       if Application.messagebox('请确认是否要删除', '管理系统', mb_iconinformation + mb_yesno) = idyes then
       begin
         DM.CDS_gb_01.delete; 
         DM.CDS_gb_01.applyupdates(0);//改为DM.CDS_gb_01.post
    end;
     end
     else
     begin
       Application.messagebox('已没有记录可删除,请确认!', '管理系统', mb_iconinformation + mb_defbutton1);
     end;
    end;
      

  5.   

    不用applyupdates这种方式,试试!
    直接对数据库操作,肯定会报错,
    先解决错误,然后再改回applyupdates方式
      

  6.   

    哪应怎么做?
    用 post 一定会出错