天
天地弦
Unregistered / Unconfirmed
GUEST, unregistred user!
900分,大家来分析下TCustomClientDataSet.ApplyUpdates(MaxErrors: Integer): Integer;越细越好
请大家来分析下ClientDataSet的更新过程,弄明白更新原理,使程序做得更好,越细越好!
做三层有一段时间了,虽然我没有用到ClientDataSet的自带的更新方法。但是Cds的更新方法是有值得借鉴的地方,拿出900出来分给高手。请各位高手帮帮忙,希望能把各行代码都弄明白他的意思!
function TCustomClientDataSet.ApplyUpdates(MaxErrors: Integer): Integer;
var
RootDataset: TCustomClientDataset;
begin
01 CheckBrowseMode;
02 RootDataset := Self;
03 while RootDataset.FParentDataSet <> nildo
04 RootDataset := RootDataset.FParentDataset;
05 with RootDatasetdo
06 if ChangeCount = 0 then
07 Result := 0 else
08 Reconcile(DoApplyUpdates(Delta, MaxErrors, Result));
end;
这个函数好讲送分。
请大家来分析下ClientDataSet的更新过程,弄明白更新原理,使程序做得更好,越细越好!
做三层有一段时间了,虽然我没有用到ClientDataSet的自带的更新方法。但是Cds的更新方法是有值得借鉴的地方,拿出900出来分给高手。请各位高手帮帮忙,希望能把各行代码都弄明白他的意思!
function TCustomClientDataSet.ApplyUpdates(MaxErrors: Integer): Integer;
var
RootDataset: TCustomClientDataset;
begin
01 CheckBrowseMode;
02 RootDataset := Self;
03 while RootDataset.FParentDataSet <> nildo
04 RootDataset := RootDataset.FParentDataset;
05 with RootDatasetdo
06 if ChangeCount = 0 then
07 Result := 0 else
08 Reconcile(DoApplyUpdates(Delta, MaxErrors, Result));
end;
这个函数好讲送分。