在服务器端设定好两个ADODataSet的主从关系,由于主表的数据是由两个表组合查询得来的,在客户端对主表ApplyUpdate后,如何在服务器端进行数据的更新。具体情况如下:
服务器端:主表dstOrderList(订单列表),从表dstOrderContent(订单内容),现主表的CommandText='Select a.*, b.* From OrderList a, Customer b Where a.CustomerNo = b.CustomerNo',主从表之间是由OrderID(订单号)进行关联的。
客户端:主表cdsOrderList,从表cdsOrderContent

解决方案 »

  1.   

    使用ADO技术,对于组合表的同时更新是没有问题的,而对于主从(Master/Detail)表,同时修改主从表并更新则可能出现错误:因为ADO使用分别使用不同的SQL语句提交更新,这样容易出现先执行的Sql修改了某些字段,而后来的Sql语句试图去修改相同或相关联的字段而出现查询不到原有字段的错误。这个容易想到。如果能保证只有主从表只有一方被修改,则使用ADO来实现同时更新不会出现问题。组合表的同时自动更新的一个重要之处在于,设定对应DataSetProvider的ResolveToDataSet为true。
    李维的两本书中有专门论述。
      

  2.   

    你这事实上是一种蜂巢状的结构,在更新时只要调用主表的 ApplyUpdates ,细表自动会调用 ApplyUpdates的。
      

  3.   

    我将主表的DataSetProvider的ResolveToDataSet设为True后,新增记录时,主表的数据是可以保存了,但从表数据却不能保存,另外,在修改记录时也不能保存,这是怎么一回事呀,救救我吧,我是刚学做三层结构的。