Mithilfe einer Client-Datenmenge Aktualisierungen zwischenspeichern

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Client-Datenmengen verwenden - Index


Bei der Bearbeitung von Daten wird von den meisten Datenmengen beim Löschen oder Übergeben eines Datensatzes eine Transaktion erstellt, der Datensatz auf den Datenbankserver geschrieben oder von dort gelöscht und die Transaktion dann festgeschrieben. Falls beim Schreiben der Änderungen in die Datenbank ein Problem auftritt, wird Ihre Anwendung unmittelbar benachrichtigt: die Datenmenge löst eine Exception aus, wenn Sie den Datensatz übergeben.

Falls Ihre Datenmenge einen externen Datenbankserver verwendet, kann dieser Ansatz die Performance verschlechtern, weil beim Wechsel zu einem neuen Datensatz nach der Bearbeitung des aktuellen Datensatzes Netzwerkverkehr zwischen Ihrer Anwendung und dem Server entsteht. Um möglichst wenig Netzwerkverkehr zu erzeugen, können Sie die Aktualisierungen lokal zwischenspeichern. Beim Zwischenspeichern von Aktualisierungen ruft Ihre Anwendung Daten von der Datenbank ab, nimmt eine lokale Zwischenspeicherung vor, bearbeitet sie und schreibt dann die zwischengespeicherten Aktualisierungen in die Datenbank zurück – alles innerhalb einer einzigen Transaktion. Wenn Sie Aktualisierungen zwischenspeichern, werden Änderungen an einer Datenmenge (wie beispielsweise gelöschte Datensätze) lokal gespeichert, statt direkt in die zugrunde liegende Tabelle der Datenbank geschrieben zu werden. Sind die Änderungen abgeschlossen, ruft Ihre Anwendung eine Methode auf, welche die zwischengespeicherten Änderungen in die Datenbank schreibt und den Cache löscht.

Das Zwischenspeichern von Aktualisierungen kann Transaktionszeiten minimieren und Netzwerkverkehr reduzieren. Zwischengespeicherte Daten sind jedoch lokal zu Ihrer Anwendung und unterliegen keiner Transaktionssteuerung. Das bedeutet: Während Sie mit Ihrer lokalen Kopie der Daten im Hauptspeicher arbeiten, können andere Anwendungen die Daten in der zugrunde liegenden Datenbanktabelle ändern. Auch sehen sie die von Ihnen vorgenommenen Änderungen nicht, bis Sie die zwischengespeicherten Aktualisierungen zurückschreiben. Aufgrund dieser Tatsache sind zwischengespeicherte Aktualisierungen möglicherweise nicht für Anwendungen geeignet, die mit häufig geänderten Daten arbeiten, weil Sie zu viele Konflikte erzeugen könnten, wenn Sie versuchen, Ihre Änderungen in die Datenbank zu schreiben.

Obwohl die BDE und ADO alternative Mechanismen für das Zwischenspeichern von Aktualisierungen bereitstellen, weist die Verwendung einer Client-Datenmenge zum Zwischenspeichern von Aktualisierungen verschiedene Vorteile auf:

  • Aktualisierungen werden für Sie zurückgeschrieben, wenn die Datenmengen in Haupt/Detail-Beziehungen verknüpft sind. Auf diese Weise wird sichergestellt, dass Aktualisierungen an mehreren verknüpften Datenmengen in der richtigen Reihenfolge ausgeführt werden.
  • Client-Datenmengen bieten Ihnen maximale Kontrolle über den Aktualisierungsprozess. Sie können Eigenschaften setzen, welche die für die Aktualisierung von Datensätzen erzeugte SQL-Anweisung steuern, die für die Aktualisierung von Datensätzen aus einem Join über mehrere Tabellen verwendete Tabelle angeben oder die Änderungen sogar innerhalb einer BeforeUpdateRecord-Ereignisbehandlungsroutine manuell vornehmen.
  • Treten beim Zurückschreiben zwischengespeicherter Aktualisierungen auf den Datenbankserver Fehler auf, stellen Ihnen nur Client-Datenmengen (und Datenmengen-Provider) Informationen über den aktuellen Datensatzwert auf dem Datenbankserver zusätzlich zum (unveränderten) Originalwert von Ihrer Datenmenge und dem neuen (bearbeiteten) Wert der fehlgeschlagenen Aktualisierung bereit.
  • Client-Datenmengen ermöglichen es Ihnen, die Anzahl der Aktualisierungsfehler festzulegen, die Sie akzeptieren, bevor die gesamte Aktualisierung rückgängig gemacht wird.

Die folgenden Themen beschreiben detailliert, wie mit Client-Datenmengen Aktualisierungen zwischengespeichert werden können:

Siehe auch