如何利用delta生成SQL,而不用传递给DataSetProvider

解决方案 »

  1.   

    function CreateSQL(_data:OLEVariant):TStrings;
    var
      csd:TClientDataset;
      _s:TStrings;
    begin
      cds:=TClientDataset.Create(nil);
      _s:=TStrings.Create;  cds.data:=_data;
      while not cds.eof do 
      begin
        case cds.updatestatus of
        usModified:_s.Add('update table set ...');
        usInserted:_s.Add('insert ....');
        usDeleted:_s.Add('delete from ');
      end;
    end;用这种方法可以用于与数据源断开的数据集,但是否有更好的方法
      

  2.   

    去看VCL源码吧...你应该查得到的..