在客户端,cds_master的数据修改并保存后,cds_master.close;cds_master.open;这时显示的数据是修改后的数据.
但是,cds_detail的数据修改并保存后,cds_master.close;cds_master.open;这时显示的数据是修改前的数据,必須重新启动程序后显示的才是修改后的数据.
请大家想想可能是那儿的问题.已经困扰我两个多星期了.

解决方案 »

  1.   

    问一下:
      cds_detail是通过cds_master去过来的吗?还是通过独立的provider取过来的?
      

  2.   

    楼主已经说了是用“巢状数据。”不过我这里,没有出现你的那种情况,applyupdate以后,close and open
    主从表都更新了
      

  3.   

    中间件中添加:[]:属性设置
    AdoConnetion1:[按实际情况配置]
    DataSource1:
     [DataSet:=AdoDataSetMain]
    AdoDataSetMain:
     [CommandText:=SELECT Stu_ID, Name FROM dbo.Students]
    AdoDataSetDetail:
     [CommandText:='SELECT dbo.Score.* FROM dbo.Score INNER JOIN  
                dbo.Students ON dbo.Score.Stu_ID = dbo.Students.Stu_ID';
     DataSource:=DataSource1;
     MasterFields:='Stu_ID'] 
    DataSetProvider1:[DataSet:=AdoDataSetMain]
    /***在这里AdoDataSetMain将dbo.Score作为一个字段传送到客户段。***/
    客户端添加:
    DCOMConnection1:[]
    ClientDataSetMain:
     [RemoteServer:=DCOMConnection1;
     ProviderName:=DataSetProvider1;
     右键增加所有字段;]
    ClientDataSetDetail:
     [RemoteServer:=DCOMConnection1;
     ProviderName:=AdoDataSetMain;
     DataSetField:=AdoDataSetMainAdoDataSetDetail;
     这时delphi会自动将RemoteServer和ProviderName清空; ]
      一切OK!!!
        祝君好运!!!
      

  4.   

    謝謝各位的回覆 !!!
    我的应用程序服务器上不是用的adodataset,而是两个adotable:  adotablemaster和adotabledetail,没有写sql语句啊!难道这是原因?我的配置如下:
    中间件
    ADOConnetion1:[按实际情况配置]
    ADOTableMaster:
     [Connection := ADOConnetion1;
    TableName := student;]
    DataSource1:
     [DataSet:=ADOTableMaster]
    ADOTableDetail:
     [Connection := ADOConnection1;
      TableName := relation_Student_Course;//学生选课
      MasterSource:=DataSource1;
      MasterFields:='Stu_ID'] 
    DataSetProvider1:[DataSet:=ADOTableMaster]客户端:
    DCOMConnection1:[]
    cds_Master:
     [RemoteServer:=DCOMConnection1;
     ProviderName:=DataSetProvider1;
     右键增加所有字段;]
    cds_Detail:
     [ DataSetField:=cds_MasterADOTableDetail;]请帮忙看看有甚么问题吗?
      

  5.   

    table也是一样的。我测试过,看不出来你的有什么问题
    我可以把我的测试程序给你
      

  6.   

    小小骑摩托,呵呵,小小胆子吃大了,敢在大哥头上动土;
    给你赔不是了;
    饶命,饶命;
    卖个乖
    -------------------------------------------------------------
    寻寻寻,寻斑竹小小在线
    如果您觉的您对Delphi 感兴趣或是很想学的更好些或者是对Delphi 有更深的认识,我们可以一起交流;
    呵呵
    www.nxrs.net/bbs
    谢谢,别抛砖
      

  7.   

    和我的设置一样啊,哎,真不知道怎么回事,刚才换成adodataset也不行.没辄了.
      

  8.   

    我把datasetprovider的resolvetodataset设为true后基本成功,但还有个小bug.
    你的程序里难道没有设置这一项吗?根据我现在的理解,如果一切都按这么缺省配置的话,refresh肯定得出问题!
    你注意到没有,adotabledetail自从第一次open后就一直处于active状态!