描述:有一个DBGrid,点中其中一条记录以后,再点击删除按钮,就把该记录删掉。注意,DBGrid中的DateSource是连接的ADODateSet控件而不是ADOQuery控件。问题:如何用ADODateSet.delete这个命令?为什么我这个总是报错说 '缺少更新获刷新的键列信息'?为何会出现这个提示?谢谢各位。

解决方案 »

  1.   

    还有一个刷新命令吧~ ADOQuery.Requery();
    然后就没什么了。
      

  2.   

    肯定是这个delete的毛病啊~去掉后面的程序也不行哦~
      

  3.   

    delete from table where id='''+dataset.fieles[0].value+]''' '
      

  4.   

    你的DBGrid中显示的是5个表的信息?
      

  5.   

    你的DBGrid中显示的是5个表的信息
    =============================
    如果是这样的话,那是不行
      

  6.   

    '缺少更新获刷新的键列信息'是因为缺少主键。在建表的时候应该设置一个主键,就可以删除掉了。直接用ADODateSet.delete
      

  7.   

    用sql语句吧
    delete from table
    where
      

  8.   

    这样是不行的。因为当你在执行删除时,其实是在删除5个表的数据,虽然你没有建什么约束,但你在提数据时实际使用了连接(Inner join,outer....)约束;建议在这种情况下,删除采用针对某个表直接发SQL语句,然后Requery.