有兩個ADODATASET,關係是主從表的關係當我修改多條從表記錄然後一次性提交的時候只能保存最後一筆記錄,而先前修改的記錄還在數據集當中未提交,請問這要如何解決呀!!!(如果是單表的話就沒有問題)

解决方案 »

  1.   

    “當我修改多條從表記錄然後一次性提交的時候”
    在哪里修改的多条记录,dbgrid吗?
    updateBatch了吗?
      

  2.   

    我是用DBEDIT控件。
    UPDATEBATCH,已經做過了。
      

  3.   

    更改后,先Post,
    批量提交时updateBatch,
    应该没有问题的呀,你是怎么做的,贴出来。
    QQ:57143540
      

  4.   

    點擊修改時
    AdsDetail.edit;保存時
        If AdsDetail.DataSource = dsCdsBrows then
          AdsDetail.DataSource := nil;
        ADsDetail.UpdateBatch;
        StatBar.Panels[0].Text := StatBarEvent(3);
        Application.ProcessMessages;    If InhAutoPaperNo then         //自動產生單號否
          StrPartialKey[0] := data.PaperNoMain(ADsDetail,PaperNoPartialKey)
        Else
          SaveIndex;
        If AdsDetail.FilterGroup = fgPendingRecords then
        Begin
          AdsDetail.Filtered := False;
          AdsDetail.FilterGroup := fgNone;
        End;
        SaveData;
        AdoState := dsBrowse;
        If DgDetail.DataSource <> dsCdsBrows then
          DgDetail.DataSource := dsCdsBrows;
        If AdsDetail.DataSource <> dsCdsBrows then
          AdsDetail.DataSource := dsCdsBrows;
        DataEnable;
        QueryEnableFalse;
        ButSaveCancelEnableFalse;
        PageMain.SetFocus;
        StatBar.Panels[0].Text := StatBarEvent(0);
      

  5.   

    以上就是我的代碼了。
    我起先也是想先保存,但是我發現我修改一筆記錄後,等到移到到下一筆時
    這個數據集的狀態就變成了流LAN狀態。
    但是數據集的RECORDSTATUS的狀態卻是未提交的。這個鬼問題,原來在用BDE的時候都沒有出這種怪事
      

  6.   

    先聲明
      如果保存時去掉這一段時If AdsDetail.DataSource = dsCdsBrows then
          AdsDetail.DataSource := nil;就只能保存最後一筆記錄
    如果加上就可以保存所修改記錄。