主从关系表,只要修改主表中的关联字段的值,从表的数据会消失,应该怎么解决?表不支持关联和联级更新。

解决方案 »

  1.   

    一般情况,不要改关联字段
    可以在数据库的beforPost事件中,将从表的关联字段的值改成修改后的关联值
      

  2.   

    beforepost不行呀,我的adodataset用了缓存模式,只要一修改关联字段,还没有触发主表的beforepost事件,从表里的数据就没有了。
      

  3.   

    with adodetail do
    begin
      edit;
      fieldbyname('订单号').AsString:=adomaster.fieldbyname('订单号').AsString;
    end;
      

  4.   

    TO: lovejiajia(三人行,必有我师) 
     这段代码应该放在什么地方(哪个事件里边)?
      

  5.   

    with adodetail do
    begin
      edit;
      fieldbyname('订单号').AsString:=adomaster.fieldbyname('订单号').AsString;
      refresh;
    end;主表的beforepost啊
      

  6.   

    procedure TForm1.ADODataSet1BeforePost(DataSet: TDataSet);
    begin
      ShowMessage('触发BeforePost事件');
      with adodetail do
      begin
        edit;
        fieldbyname('订单号').AsString:=ADODataSet1.fieldbyname('订单号').AsString;
        refresh;
      end;
    end;
    这样不行呀,当DBEdit中的值(主表关联字段的值)一改变,从表中就没有数据了,并且也没有触发主表的BeforePost事件
      

  7.   

    TO:DragonBill(月满西星)
    怎样切断与主表之间的关联?如果切断了,从表中的数据会不会消失?
      

  8.   

    with adodetail do
    begin
      edit;
      fieldbyname('订单号').AsString:=adomaster.fieldbyname('订单号').AsString;
      refresh;
    end;主表的beforepost啊
      

  9.   

    把从表的DataSource属性设为nil,编辑完成后再恢复为主表的DataSource就行了。