我用DBGrid和ADOQuery关联,可以从SQL Server2000中查询出记录,显示在DBGrid中,也可以在DGBrid中修改记录并保存到数据库中,但是用下面语句却不能删除数据库中的当前记录记录。为什么?
adoquery1.close;
ADOQuery1.Open;
ADOQuery1.Delete;
ADOQuery1.Refresh;如果用SQL语句,要删除当前记录,该怎样写?

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/2514/2514776.xml?temp=.4467279
      

  2.   

    如果你说数据删除不了的 一个就是你的数据集用了缓存的模式的
    或者你的数据集没有刷新过来的 你再adoquery1.close;后adoquery1.open试试呢
      

  3.   

    用ADOQuery1.DeleteRecords(arCurrent);也不能删除掉当前记录。
    总之,删不掉!为什么?
    如果用SQL语句,详细怎么写?是当前记录!
    SQL语句删除记录的语法是:delete from tablename Where 条件,在删除当前记录时,“条件”应该如何写呢?
      

  4.   

    问题出在你的SQL语句上!按楼上说的做!
      

  5.   

    直接删除当前记录的话就是adoquery1.delete就是可以了
      

  6.   

    有个当前记录号:RECORDNUM你看下这个属性
      

  7.   

    adoquery1.close;
    ADOQUERY1.SQL.CLEAR;
    ADOQUERY1.SQL.ADD('DELETE FROM 表名 WHERE 条件');
    ADOQUERY1.EXECSQL;//千万不要使用ADOQUERY1.OPEN。因为OPEN 用于查询,插入和删除要用EXECSQL
      

  8.   

    if not adoquery1.active then
      adoquery1.open;
    adoquery1.delete;
    前提是不能有重复记录否则会显示列键信息不足而出错。
      

  9.   

    为什么要用ADOQuery呢,为什么不用ADOUpdate(好象叫这个)呢?
      

  10.   

    ADOQuery1.Refresh;
    不用这句。