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 » Zeilen auf entfernte Datenbanken verteilen

 

Unabhängige Verteilung

Die Verteilung wird für jede an der Synchronisation beteiligte Tabelle durch die Skripten download_cursor und download_delete_cursor gesteuert. Diese Skripten haben zwei Parameter, einen Zeitstempel des letzten Downloads und den MobiLink-Benutzernamen, der im zu synchronisierenden Aufruf angegeben wird.

♦  So teilen Sie eine Tabelle zwischen entfernten Datenbanken auf
  1. Beziehen Sie eine Spalte in die Tabellendefinition ein, die den Benutzernamen für die Synchronisation mit der konsolidierten Datenbank enthält. Diese Spalte braucht nicht in die entfernten Datenbanken übertragen zu werden.

  2. Fügen Sie in die WHERE-Klausel der Skripten download_cursor und download_delete_cursor eine Bedingung mit der Forderung ein, dass diese Spalte mit dem Skriptparameter übereinstimmt.

    Der Skriptparameter kann im Skript durch ein Fragezeichen oder einen benannten Parameter dargestellt werden. Folgendes download_cursor-Skript teilt zum Beispiel eine Tabelle Contact anhand der Mitarbeiterkennung emp_id auf.

    SELECT id, contact_name
    FROM Contact
    WHERE last_modified >= {ml s.last_table_download}
    AND emp_id = {ml s.username}

    Weitere Hinweise finden Sie unter download_cursor (Tabellenereignis) und download_delete_cursor (Tabellenereignis).

Beispiel

Die Tabellen mit dem Primärschlüsselpool in der Beispielanwendung CustDB werden verwendet, um jeder entfernten Datenbank ihre eigene Gruppe von Primärschlüsselwerten zu übermitteln. Diese Methode wird verwendet, um mehrfach vorhandene Primärschlüssel zu vermeiden. Sie ist unter Primärschlüsselpools verwenden beschrieben.

Diese Methode setzt voraus, dass die Tabellen des Primärschlüsselpools zwischen den entfernten Datenbanken unabhängig aufgeteilt werden.

Eine der Schlüsselpooltabellen ist die Tabelle ULCustomerIDPool, die Primärschlüsselwerte für die einzelnen Benutzer enthält, damit diese einen Kunden hinzufügen können. Die Tabelle hat folgende drei Spalten:

  • pool_cust_id   Ein Primärschlüsselwert, der in der Tabelle ULCustomer verwendet wird. Dies ist die einzige Spalte, die in die entfernte Datenbank übertragen wird.

  • pool_emp_id   Der Mitarbeiter, der Eigentümer dieses Primärschlüssels ist.

  • last_modified   Diese Tabelle wird auf der Grundlage der Spalte last_modified mit der Zeitstempelmethode gewartet.

    Weitere Hinweise zur Zeitstempelsynchronisation finden Sie unter Zeitstempelbasierte Downloads.

Das download_cursor-Skript für diese Tabelle sieht wie folgt aus:

SELECT pool_cust_id
FROM ULCustomerIDPool
WHERE last_modified >= {ml s.last_table_download}
 AND pool_emp_id = {ml s.username}

Wenn Sie keine Variable oder keinen benannten Parameter verwenden, müssen Sie mit einem Join oder einer Unterabfrage-Bedingung arbeiten, die den Platzhalter ? enthält.

Weitere Hinweise finden Sie unter Kunden im Beispiel Contact synchronisieren und Ansprechpartner im Beispiel Contact synchronisieren.