var
itemid:string;
begin
....
table1.setkey;
table1.fieldbyname('nodeid').asstring:=itemid;
if table1.gotokey then
  table1.delete;
以上的这段代码是不是这样的理解,setkey建立查询,条件是table1.fieldbyname('nodeid').asstring:=nodeid;gotokey为当条件成立的,执行table1.delete;也就是删除table1中nodeid记录。
  那么用adoquery来实现的话,是不是这样的来实现(连接的是access数据库):
var
itemid:string;
begin
....
adoquery1.open;
adoquery.sql.clear;
adoquery.sql.add('select nodeid from [tgroup] where nodeid=itemid');
adoquery1.delete;
end;
以上两段代码的结果是不是一样啊,或许adoquery有更为简单的方法可用,同时sql.add中的查询有问题,不知连接access数据库时的SQL查询的格式怎样的写,以上问题,恳请各位大师指点一二;

解决方案 »

  1.   

    adoquery1.close;
    adoquery.sql.clear;
    adoquery.sql.add('delete from [tgroup] where nodeid=itemid');
    adoquery1.execsql;
      

  2.   

    adoquery1.close;
    adoquery.sql.clear;
    adoquery.sql.add('delete from [tgroup] where nodeid=''itemid''');
    adoquery1.execsql;
      

  3.   

    adoquery1.close;
    adoquery.sql.clear;
    adoquery.sql.add('delete from [tgroup] where nodeid=''itemid''');
    adoquery1.execsql;
      
      

  4.   

    楼上的弟兄好像没有理解楼主的意思,如果如上所写代码,则DBgrid中显示效果有变! 所以不可取!
     建议使用locate()定位到要查询的记录上,然后使用delete删除!