win2k+Delphi5+SQL Server 2k
Delphi:
   DBGRID,ADOQuery
   现在我想通过ADOQuery对DBGRID中的记录直接进行删除操作!但是运行时老是删除失败!不知道ADOQuery的这两个方法怎么用,请赐教!
...
  if DM.DModule.qryDelete.Active=True Then
  begin
    DM.DModule.qryDelete.DeleteRecords;//关键就是这句!
    DM.DModule.qryAddr.Refresh;
  end
  else begin
    ShowMessage('删除失败!');
    DM.DModule.qryDelete.Active:=True ;
    Exit;
  end;
...

解决方案 »

  1.   

    把adoquery1.deleterecords改成adoquery1.delete。
      

  2.   

    是啊,没有必要那么麻烦直接 adoquery1.delete就可以
      

  3.   

    现在在
        DM.DModule.qryAddr.Refresh;
    这句出错了!
    Erro:数据源中此行的键值已经被删除或修改,现在本地行被删除!
    在数据库中确实被删除了!@
      

  4.   

    不用更新,要更新也是更新dbgrid
      

  5.   

    你这样做不好
    你可以这样做
    Adoquery1.Sql.Text := 'delete * from 表 where 条件';
    adoquery1.execsql;
    这样就可以了
      

  6.   

    我是更新与dbgrid相连的query呀!
    另外,我想每次打开这个窗体的时候dbgrid中不要显示任何值,怎么做到?
      

  7.   

    "我是更新与dbgrid相连的query呀!
    另外,我想每次打开这个窗体的时候dbgrid中不要显示任何值,怎么做到?"把dbgrid的DataSource属性值设为空不就得了,到需要用的时候再写码设置
      

  8.   

    把DBGrid的DataSource设为空即可,等需要时,再写代码赋值
      

  9.   

    1:更新query?你的意思是让dbgrid的显示跟随你的删除而改变?擦新它一次吧。
       用adoquery1.Refresh;不行的话就直接关掉再打开。adoquery1.close;
       adoquery1.open;
    2:在formshow事件写adoquery1.active:=false3: 搞定  给分吧。