求高手赐教
我用一个dbgrid显示数据,要连接到别的表,所以用了左连接,另一个form上面放填写的控件,填完了在这个然后在这个有dbgrid的form使用cds.fieldbyname('').asstring之类的把数据显示出来,但是单击保存的时候使用cds1.applyupdate(-1)把数据提交到数据库时,没有报错,可是数据库也没有数据

解决方案 »

  1.   

    我有提交啊 使用cds.applyUpdate(-1) 这个是不是多表不能更新 我换成单表后就可以更新到数据库
      

  2.   

    曾经有一个据说DELPHI七年了的人来我们公司面试,也说到过这个情况。--让我回想起“一个人去面试,说自己有十年工作经验,面试完后经理说你只有一年工作经验,只是重复了十年而已。”悲剧的事情太多了。
      

  3.   

    我个人觉得,用cds.applyUpdate(-1) 不是一个好习惯。
    cds.applyUpdate(-1)不报错,不代表没错。
    cds.applyUpdate(0)估计就会出错。这种情况,可以不用左连接,先在cds2里打开原来左连接的表,再在cds里加Lookup字段关联cds2,来处理。 
      

  4.   

    假设只修改表1的数据,可以这样
    表2(id,字段2) -> dsp2 -> cds2
    表1(id,字段1) -> dsp1 -> cds1 -> ds1 -> dbgrid(id,字段1,字段2)
    commandtext中写上 select * from 表2/表1
    cds1,cds2 双击打开Fields Editor,Add all fields
    cds1中再New field, type 选 lookup,key 选 id,dataset 选 cds2,lookup key选id,result选字段2.
    改动cds1后,用cds1.applyupdate(0);