当前位置:  开发笔记 > 运维 > 正文

Delphi中TDataSetProvider所需的信息

如何解决《Delphi中TDataSetProvider所需的信息》经验,为你挑选了1个好方法。

我有Midas项目,在服务器的RemoteDataModules之一中使用TDataSetProvider

目前我正在利用以下事件

BeforeApplyUpdates - 创建一个Object

BeforeUpdateRecord - 使用该对象

AfterApplyUpdates - 来破坏对象

题:

即使是更新错误,也会始终调用'AfterApplyUpdates'吗?



1> Toon Krijthe..:

如果你看一下源代码:

function TCustomProvider.DoApplyUpdates(const Delta: OleVariant; MaxErrors: Integer;
  out ErrorCount: Integer; var OwnerData: OleVariant): OleVariant;
begin
  SetActiveUpdateException(nil);
  try
    try
      if Assigned(FOnValidate) then
        FOnValidate(Delta);
      DoBeforeApplyUpdates(OwnerData);
      Self.OwnerData := OwnerData;
      try
        Result := InternalApplyUpdates(Delta, MaxErrors, ErrorCount);
      finally
        OwnerData := Self.OwnerData;
        Self.OwnerData := unassigned;
      end;
    except
      on E: Exception do
      begin
        SetActiveUpdateException(E);
        raise;
      end;
    end;
  finally
    try
      DoAfterApplyUpdates(OwnerData);
    finally
      SetActiveUpdateException(nil);
    end;
  end;
end;

Yoy看到在finally块中调用了DoAfterApplyUpdates.这意味着它总是被称为任何例外的问题.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有