Delphi의 Tdatasetprovider에 필요한 정보
-
05-07-2019 - |
문제
서버의 Remotedatamodules 중 하나에서 tdatasetprovider를 사용하는 MIDAS 프로젝트가 있습니다.
현재 다음 행사를 사용하고 있습니다
- BeforeapplyUpdates- 객체를 만들려면
- 이전 UPDATERECORD- 객체를 사용합니다
- AfterApplyUpdates- 객체를 맹렬히하기 위해
의문:
업데이트 오류 인 경우에도 'AfterApplyUpdates'가 항상 호출됩니까?
해결책
sourcecode를 보면 :
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는 DoafterApplyUpdates가 마침내 블록에서 호출되는 것을 보았습니다. 이것은 항상 모든 예외의 존경이라고 불린다는 것을 의미합니다.
제휴하지 않습니다 StackOverflow