ClientDataSet从XML加载数据后在没有改动的情况全部写入数据库,
即Delta为Null的情况下,我用以下在代码不行,有没有什么办法cds1.LoadFromFile('test.xml');
        cds1.First;
        while not cds1.Eof do begin
          cds1.Edit;
          cds1.Next;
        end;
        ShowMessage(strings.Strings[I]+ IntToStr(cds1.ChangeCount));
        cds1.ApplyUpdates(-1);
      end;

解决方案 »

  1.   

    這樣好像不行的, 因為ChangCount還是等於0.
    好像只能用兩個ClientDataSet,然後循環.
    不知道還有沒有更好的辦法.
      

  2.   

    这样不行的,Delta是空的,applyUpdate是根据delta中的数据来的,你可以使用konhon(优华) 的办法添加。
      

  3.   

    if ChangeCount = 0 then
          Result := 0 
        else
          Reconcile(DoApplyUpdates(Delta, MaxErrors, Result));这个是ApplyUpdates的源码
      

  4.   

    还有没有别的方法, 回复人: konhon(优华) ( ) 信誉:106  2005-08-19 18:52:00  得分: 0  
     
     
       這樣好像不行的, 因為ChangCount還是等於0.
    好像只能用兩個ClientDataSet,然後循環.
    不知道還有沒有更好的辦法.
      
     
    具体些怎样去做?
      

  5.   

    具体些怎样去做?
    =================遍历把一个cds中的数据添加到另外一个同结构的cds,然后那个cds.ApplyUpdates
      

  6.   

    我想做一个SQL数据库初始化程序, 把原来的SQL数据库的基本数据都生成了
    XML文件,本来用每条记录都生成Insert Into Values 这样的格式的, 等
    新数据库建立好后再用把生成的SQL基本数据文件在查询器执行, 但是如果是
    Blob字段就无能为力了,所以只好把每个基本数据表生成XML文件, 再用上面文法
    写入到新的数据库中, 各位高手还没有更好的解决方案.