我做了一个三层架构
服务端上用ADOConnection1,ADOQuery1,DataSetProvider1来连
客户端用SocketConnection1,多个ClientDataSet来连现在有个问题,客户端我用了两个ClientDataSet来连主表ClientDataSet1和从表ClientDataSet2
当我保存的时候代码如下ClientDataSet1.ApplyUpdates(0);
ClientDataSet2.ApplyUpdates(0);当执行两个ApplyUpdates(0)或两个以上的时候就无法保存,它只能执行一个!这是为何,如果我想保存一个主表多个从表的时候如何保存,是不是还有那些属性没设置,请大哥们告知,谢谢!!在线等待急....

解决方案 »

  1.   

    to wxanndy 
    我是两个表分开操作的,是先保存主表ClientDataSet1.ApplyUpdates(0);后在把主表的id插入从表对应的字段然后再ClientDataSet2.ApplyUpdates(0); 但无法保存,只要去掉其中一个任何ApplyUpdates(0);就可以保存成功,请高手帮我解决这个问题,难道三层的各位就没碰到过多表保存吗?在线等待急.... 
      

  2.   

    不用那么麻烦的,主细表设置好,客户端只要主表的数据集ApplyUpdates就可以了,对了,主细表数据集关联不要用自增量的id,可以用流水号之类的
      

  3.   

    to wxanndy 
    能不能个个完整的例子来看看呢(两层的也行)?我的email:[email protected]麻烦您了,谢谢!
      

  4.   

    其实我的问题很简单就是多个ClientDataSet连接到一个公共的adoquery来进行多表操作,那当多个ClientDataSet保存的时候ApplyUpdates(0)该如何处理呢?我只要多个ApplyUpdates(0)的时候只有第一个成功而后面的都保存不进去,这是为何!是不是要把adoquery的指针一一指向ClientDataSet才能ApplyUpdates(0)呢?难道做三层开发的时候你们没遇到我这样的问题吗?请高手指教,谢谢!