Informationen, die auf TdatasetProvider in Delphi erforderlich sind
-
05-07-2019 - |
Frage
Ich habe MIDAS -Projekt, das einen TdatasetProvider in einem der remotedatamodulen auf dem Server verwendet
Derzeit benutze ich die folgenden Ereignisse
- BeeApplyupdates - um ein Objekt zu erstellen
- Vor OUPDATERECORD - Um das Objekt zu verwenden
- AfterApplyUpdates - das Objekt zu zeichnen
Frage:
Wird "AfterApplyUpdates" immer aufgerufen, auch wenn es sich um einen Aktualisierungsfehler handelt?
Lösung
Wenn Sie sich die Sourcecode ansehen:
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 sehen, dass DoafterApplyupdates im endgültigen Block aufgerufen wird. Dies bedeutet, dass es immer als Berücksichtigung einer Ausnahme bezeichnet wird.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow