Auf Aktualisierungsanforderungen des Client reagieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Provider-Komponenten - Index


Die Aktualisierungen, die ein Provider an einem Datensatz vornimmt, basieren auf einem Delta-Datenpaket, das er von einer Client-Datenmenge oder einem XML-Broker empfängt. Der Client fordert Aktualisierungen an, indem er (indirekt über die Schnittstelle IAppServer) die Methode ApplyUpdates aufruft.

Wie bei allen Methodenaufrufen, die über die Schnittstelle IAppServer erfolgen, hat der Provider auch hier die Möglichkeit, vor und nach dem Aufruf von ApplyUpdates persistente Statusinformationen mit einer Client-Datenmenge auszutauschen. Die erforderliche Kommunikation findet in den Ereignisbehandlungsroutinen für BeforeApplyUpdates und AfterApplyUpdates statt.

Wenn Sie einen Datenmengen-Provider verwenden, erhalten Sie weitere Überwachungsmöglichkeiten durch zusätzliche Ereignisse:

Wenn ein Datenmengen-Provider eine Aktualisierungsanforderung erhält, generiert er ein OnUpdateData-Ereignis wobei Sie, das Übernehmen der Aktualisierungen steuern können. Im Anschluss an die Behandlung des OnUpdateData-Ereignisses schreibt der Provider die Änderungen in die Datenbank oder die Datenquelle.

Der Provider aktualisiert der Reihe nach alle Datensätze. Vor jeder Aktualisierung generiert der Datenmengen-Provider das Ereignis BeforeUpdateRecord, das Sie nützen können, um ein Fehler zu beheben. Ein Fehler tritt normalerweise auf, wenn die Änderung eine Server-Beschränkung verletzt. Eine weitere mögliche Fehlerursache besteht darin, dass eine andere Anwendung den Datensatz geändert hat, nachdem er vom Provider abgerufen wurde, aber bevor die Client-Datenmenge die Aktualisierung angefordert hat.

Aktualisierungsfehler können entweder vom Datenmengen-Provider oder von der Client-Datenmenge bearbeitet werden. Ist der Provider Teil einer mehrschichtigen Anwendung, sollte er alle Aktualisierungsfehler behandeln, deren Behebung keine Interaktion mit dem Benutzer erfordert. Wenn der Provider eine Fehlerbedingung nicht beseitigen kann, legt er eine temporäre Kopie des betreffenden Datensatzes an. Ist die Bearbeitung der Datensätze beendet, gibt der Provider die Anzahl der aufgetretenen Fehler an die Client-Datenmenge zurück und kopiert die nicht bereinigten Datensätze in ein Ergebnis-Datenpaket, das zur weiteren Bearbeitung an die Client-Datenmenge zurückgegeben wird.

Die Aktualisierungen werden an die Behandlungsroutinen der Provider-Ereignisse jeweils in Form einer Client-Datenmenge übergeben. Wenn eine Ereignisbehandlungsroutine nur für bestimmte Aktualisierungsarten zuständig ist, können Sie die Datenmenge anhand des Aktualisierungsstatus der Datensätze filtern. Die Routine muss dann nur die relevanten Datensätze verarbeiten. Setzen Sie zu diesem Zweck die Eigenschaft StatusFilter der auf den entsprechenden Wert.

Hinweis: Betreffen die Aktualisierungen eine Datenmenge mit mehreren Tabellen, muss die Anwendung zusätzliche Vorkehrungen treffen.

Themen

Siehe auch