to:createnew
客户端Delta的清空你可以用MergeChangeLog这个过程。
如果Delta为空的判断你不用try..except的话,也可以去修改DBClient.pas的源码
function TClientDataSet.GetDelta: OleVariant;
var
FDeltaDS: IDSBase;
TempPacket: TDataPacket;
ErrFlag: DBResult;
/////
begin
CheckBrowseMode;
ErrFlag := FDSBase.GetDelta(FDeltaDS);
if ErrFlag <> 16835 then
begin
///这个错误代码我忘了,你可以跟踪一下
Check(ErrFlag);
FreeDataPacket(FDeltaPacket);
Check(FDeltaDS.StreamDS(FDeltaPacket));
SafeArrayCopy(FDeltaPacket, TempPacket);
DataPacketToVariant(TempPacket, Result);
end else
Result := nil;
end;