这是个老话题了,小弟也在全文检索中看过不少这方面的问题,可大部分是在多层中.在C/S中,多表连接获取数据后通过DBGrid组件显示出来,我想在DBGrid中修改之后再更新回数据库.可ADODataset的缓存技术不能处理多表更新,不知道该怎么办.各位能否帮忙参考一下,具体应该怎么做?谢谢!

解决方案 »

  1.   

    这个的确是个问题,我刚学Delphi没多久,讲讲我的解决方法,大家可以讨论讨论。
    如果要修改的只是一张表的一个字段,那我把主键的值取出来,用update更新。
    如果要更新的是多个记录,就只能把原来的查询条件取出来,用update,很复杂,很晕。
      

  2.   

    我在两层用adoquery可以多表更新的。但是在三层中还没有用clientdataset这样试过。
      

  3.   

    对,是怎么做到的呀?
       我想在DBGrid中更新多个表,并且是多条记录啊.
      

  4.   

    bde 好象是可以的,ado 好象是不可以的,dbexpress好象是要自己写代码的
    不行的话就自己写代码吧
      

  5.   

    不会吧,难道真的不能在DBGrid中进行多表连接更新啊?
      

  6.   

    最近也遇到这个多表的操作,我所做的就是为了查询而已
    但是不能如我yi !!
             我定义了两个表:Employee 和OnDuty  其中有ID公共字段,我想统计所有员工的出勤次数:      strsql:='select Employee.Name,count(*) as Times from OnDuty  , Employee where (OnDuty.ID =Employee.ID)    and  DutyDate between # '+strDateStart+' # and # '+strDateEnd+' # group by Employee.Name';
     这样写了。但是运行时说“#"旁边有错误!
       谢谢各位大侠 指点出其中的错误!