怎样用TClientDataSet进行多表更新啊 ~!
比如
中间件中用adoquery连接两个表a,b。sql为select * from a,b where a.id=b.id
在TClientDataSet中填入数据后怎样正确更新到两个表中啊??我直接用TClientDataSet.ApplyUpdates(0)更新。。出错~!提示'invalid column name'。。指到id那个字段上。。那位大哥看看是怎么回事啊 ~!

解决方案 »

  1.   

    你在中间件的adoquery的beforeupdates事件里写代码,手工生成insert语句来完成更新。
      

  2.   

    有没有在DataSetProvider1中Options的PoAllowCommandText属性变为True.
    SQL:SELECT * FROM a INNER JOIN b ON a.id= b.Id
    还有你要把a,b表中的ID设为主码!
    用TClientDataSet.ApplyUpdates(0)就可以更新了...
    试一下,祝你好运!!
      

  3.   

    有没有在DataSetProvider1中Options的PoAllowCommandText属性变为True.
    SQL:SELECT * FROM a INNER JOIN b ON a.id= b.Id
    还有你要把a,b表中的ID设为主码!
    用TClientDataSet.ApplyUpdates(0)就可以更新了...
    试一下,祝你好运!!
      

  4.   

    同意flymoon兄,如果你想选择部分字段最好选用自增ID,让电脑自已去维护主键,其实Midas自动会更新所有的表,如果你的更新不违返约束的话!
      

  5.   

    SQL:SELECT * FROM a INNER JOIN b ON a.id= b.Id
    还有你要把a,b表中的ID设为主码!
    用TClientDataSet.ApplyUpdates(0)就可以更新了...
      

  6.   

    将DataSetProvider1中Options的PoAllowCommandText属性变为True
    并且在DataSetProvider中的beforupdaterecord中写代码即可。