我用accsess做数据库,用adoquery连接,有如下两张表.
主表:a1                            子表:b1
项目编码  项目名称            人员 项目编码  金额
 1001        x1              p1   1001      50
 1002        x2              p1   1002      10
 1003        x3              p1   1003      12
                             p2   1001      18
                             p2   1002      40
                             p2   1003      56
sql语句如下:
select a.项目名称 b.金额 from a1 a,b1 b
where a.项目编码 =b.项目编码
and b.人员='p1'查询结果显示在DBGrid中,我想在DBgrid中修改金额,然后在post或是delete,
可运行后一但修改或删除就提示"缺少更新或刷新的键列信息";
请问各位我应怎样做才能通过DBGrid更新数据?

解决方案 »

  1.   

    联合多表查询不能修改数据.解决方法为;1、使用updatesql组件实现。2、根据updatesql组件实现思想,自己做一个临时query 分步实现数据的更新。
      

  2.   

    to  bxyqt(碧血银枪) ( ) 信誉:99     
    updatesql组件哪有下?delphi6能用吗?能说说updatesql组件的思想吗?
    谢谢!
      

  3.   

    to chenzhuo(睡到自然醒) 
    能具体讲讲在拿个面版上吗?
      

  4.   

    你用的是adoquery连接,这个updatesql不能跟他一起用的,是跟BDE的TQuery和TTable一起用的!
      

  5.   

    to  chenzhuo(睡到自然醒)  Tclientdataset可以跟updatesql一起用吗?
      

  6.   

    to  nju2008() 
    能具体一点吗?举个列子