请问,我的adoquery中的记录是由两个库合成的
select inout_product.rq,inout_product.bh,inout_product.cpbh,inout_product.xm,inout_product.sl,chanpin_jiagong.zl,inout_product.dw,inout_product.jj,inout_product.bz,
from inout_product,chanpin_jiagong
where inout_product.cpbh=chanpin_jiagong.cpbh
如果要删除里面的记录要怎么写那语句
我这样写“adoquery.Delete,可出现错误,提示“缺少更新或刷新的键列信息”
请问要怎么改,谢谢

解决方案 »

  1.   

    如果要删除里面的记录要怎么写那语句
    ===================================
    什么意思?要删除你select的语句吗?adoquery.close;
    adoquery.sql.clear;
    adoquery.sql.add('delete from inout_product,chanpin_jiagong
    where inout_product.cpbh=chanpin_jiagong.cpbh');
    adoquery.execSQl;
      

  2.   

    要删除你select的语句吗?
    改为要删除你select的记录吗?
      

  3.   

    不是,我是要删除记录,我的adoquery的sql是写‘select ……’我想删除记录是怎么写的
      

  4.   

    inout_product表和chanpin_jiagong表的主键问题.可以inout_product表的主键不只是cpbh
    或chanpin_jiagong表的主键不只cpbh一个键,这样删除时会定位不到.
      

  5.   

    直接用adoquery.delete;
    如果是用SQL,应该将你先写的select inout_product.rq,inout_product.bh,inout_product.cpbh,inout_product.xm,inout_product.sl,chanpin_jiagong.zl,inout_product.dw,inout_product.jj,inout_product.bz,
    from inout_product,chanpin_jiagong
    where inout_product.cpbh=chanpin_jiagong.cpbh
    生成一个视图.  create view inout_chanpin as .......
    然后 delete view where cpbh='123'
    或者....这者应该就好了.
      

  6.   

    直接用adoquery.delete;
    就“缺少更新或刷新的键列信息”这样的错误
      

  7.   

    应该用sql语句来删除,因为你是多个表的删除,不是一个表的删除
    delete from table where .....
      

  8.   

    因为选择的信息来自多个表,对于ADO控件Borland没有提供TADOUpdateSQL控件,只能分别删除。
      

  9.   

    你要删除的记录来原于inout_product,还是chanpin_jiagong,因为你选择的信息来源于两个表,不能对两个表的记录一起删除,但是你可以分开来删除已达到你的目的。
      

  10.   

    如果用sql语句来删除要怎么写那删除语句
      

  11.   

    你这个SQL语句查询出来的是一个视图,是无法对它进行修改和删除操作的,要删除要用另外的SQL语句根据你的条件找到相应记录并删除,然后再对这个视图进行刷新就可以了