Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Serveradministration » MobiLink-Servertechnologie verwenden » Synchronisationsmethoden

 

Löschungen handhaben

Wenn eine Zeile aus der konsolidierten Datenbank gelöscht wird, muss dieser Vorgang erfasst werden, damit die betreffende Zeile auch aus allen anderen entfernten Datenbanken gelöscht werden kann. Dies kann durch logische Löschungen oder Schattentabellen erfolgen.

  • Logische Löschungen   Bei dieser Methode wird die Zeile nicht gelöscht. Nicht mehr benötigte Daten werden in einer Statusspalte als inaktiv markiert. Die WHERE-Klausel der Skripten download_cursor und download_delete_cursor können sich auf den Status der Zeile beziehen.

    Diese Methode wird in der Tabelle ULEmpCust in der Beispielanwendung CustDB eingesetzt, in der die Aktionsspalte ein "D" für "Delete" (Löschen) enthält. Die Skripten verwenden diesen Wert, um den Datensatz aus der entfernten Datenbank zu löschen, und löschen schließlich am Ende der Synchronisation den Datensatz auch aus der konsolidierten Datenbank. CustDB verwendet diese Methode auch für die Tabelle ULOrder. Im Beispiel Contact wird die Methode auf die Tabellen Customer, Contact und Product angewendet.

    Bei der Unterstützung des MobiLink-Synchronisationsmodells für logische Löschungen wird davon ausgegangen, dass eine logische Löschspalte sich nur in der konsolidierten Datenbank und nicht in der entfernten Datenbank befindet. Wenn ein konsolidiertes Schema in ein neues entferntes Schema kopiert wird, lassen Sie alle Spalten aus, die mit den logischen Löschspalten in den Synchronisationseinstellungen des Modells übereinstimmen. Bei einem neuen Modell wird der Standardspaltenname gelöscht.

    So fügen Sie den Namen der logischen Löschspalte dem entfernten Schema hinzu:

    1. Im Assistenten zum Erstellen eines Synchronisationsmodells wählen Sie auf der Seite Download-Löschungen die Option Logische Löschungen verwenden.

    2. Benennen Sie die logische Löschspalte um, sodass sie mit keinem Spaltennamen in der konsolidierten Datenbank übereinstimmt.

    3. Wenn der Assistent beendet wurde, aktualisieren Sie das entfernte Schema und behalten die Standardtabellenauswahl bei. Der Name der logischen Löschspalte erscheint in der Schemaänderungsliste und kann dem entfernten Schema hinzugefügt werden.

    Hinweis

    Sie müssen die Spaltenzuordnung für die logische Löschspalte der entfernten Datenbank auf die logische Löschspalte der konsolidierten Datenbank festlegen.

  • Schattentabellen   Bei dieser Methode erstellen Sie eine Schattentabelle, in der die Primärschlüsselwerte von gelöschten Zeilen gespeichert werden. Wenn eine Zeile gelöscht wird, kann ein Trigger die Schattentabelle anfüllen. Das download_delete_cursor-Skript kann diese Schattentabelle dann verwenden, um Zeilen aus den entfernten Datenbanken zu löschen. Die Schattentabelle benötigt hierzu lediglich die Primärschlüsselspalten aus der eigentlichen Tabelle.

Weitere Hinweise finden Sie unter download_delete_cursor-Skripten schreiben.


Synchronisation von Löschungen vorübergehend stoppen