المعلومات المطلوبة على tdatasetprovider في دلفي
-
05-07-2019 - |
سؤال
لدي مشروع Midas الذي يستخدم tdatasetprovider في واحد من Remotedatamodules في الخادم
حاليا أنا أستفيد من الأحداث التالية
- Be ForeApplyupdates - لإنشاء كائن
- قبل updaterecord - لاستخدام الكائن
- بعد applyupdates - لقدر الكائن
سؤال:
هل سيتم دائمًا استدعاء "بعد applyupdates" حتى لو كان خطأ في التحديث؟
المحلول
إذا نظرت إلى رمز المصدر:
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