用ADO连接adoquery,datasource,dbgrid各一个。
问题是我在adoquery中是用两个表查出数据的语法如下:select a.*,b.chrID from a inner join b on a.chrID=b.chrID  (chrID在两个表中都是主关键字)
当我用dbgrid.selectedrows.delete做删除时会把两个表中的数据删掉。而我只想删除表a中的数据。请各位帮忙

解决方案 »

  1.   

    adoquery的SQL这样写:
    select a.* from a,b where a.chrID=b.chrID
      

  2.   

    这样当然是会删除两个表中的记录因为,你是关联的,要删除A中的记录你要获得dbgrid中A表的关键字,然后在用SQL语句进行删除
      

  3.   

    我个人的观点似乎是做不到,你可以试着不用直接的删除命令,而是用另外一个query来间接实现:
    with query do
    begin
    close;
    unprepare;
    sql.text:='Delete from a where chrid = '''+adoquery.fieldbyname('chrid').asstring+'''';
    prepare;
    execSQL;
    end;
      

  4.   

    因为是关联的啊
    像楼上说的那样,用另外一个query来执行删除动作.
      

  5.   

    首先谢谢你们的回答!
    用另一外一个query,但怎样得到所选的是哪几行呢。
      

  6.   

    tianma_66(天马)
    你好,你这个方法我试了行,但我不明白unprepare;prepare;这两个方法是做什么的。在d7中好象没有这个。