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

SQL Anywhere 12.0.0 (Deutsch) » UltraLite - C- und C++-Programmierung » API-Referenz » Praktische Einführung: Anwendung mit der C++-API erstellen

 

Lektion 4: Ihrer Anwendung Synchronisation hinzufügen

In dieser Lektion synchronisieren Sie Ihre Anwendung mit einer konsolidierten Datenbank, die auf Ihrem Computer läuft.

Im folgenden Verfahren wird gezeigt, wie Sie Synchronisationscode in Ihre Anwendung einfügen, den MobiLink-Server starten und Ihre Anwendung ausführen, um die Daten zu synchronisieren.

Die in den vorhergehenden Lektionen von Ihnen erstellte UltraLite-Datenbank wird mit der UltraLite 12-Beispieldatenbank synchronisiert. Die UltraLite 12-Beispieldatenbank verfügt über die Tabelle ULCustomer, deren Spalten diejenigen aus der customer-Tabelle Ihrer lokalen UltraLite-Datenbank umfassen.

Diese Lektion setzt Vertrautheit mit der MobiLink-Synchronisation voraus.

 ♦  So fügen Sie Ihrer Anwendung die Synchronisationsfunktion hinzu
  1. Fügen Sie nachstehende Methode der Datei customer.cpp hinzu. Diese Methode führt die folgenden Aufgaben aus:

    • Aktiviert die TCP/IP-Kommunikation durch Aufruf von EnableTcpipSynchronization. Die Synchronisation kann auch über HTTP, HTTPS und TLS durchgeführt werden. Siehe UltraLite-Clients.

    • Sie definiert die Skriptversion. Die MobiLink-Synchronisation wird von Skripten in der konsolidierten Datenbank gesteuert. Die Skriptversion legt fest, welche Gruppe von Skripten verwendet werden soll.

    • Sie legt den MobiLink-Benutzernamen fest. Dieser Wert wird zur Authentifizierung auf dem MobiLink-Server verwendet. Sie unterscheidet sich von der Benutzer-ID der UltraLite-Datenbank. Sie können aber bei Ihren Anwendungen denselben Wert für die Benutzer-ID verwenden.

    • Sie legt den Parameter download_only auf TRUE fest. Standardmäßig ist die MobiLink-Synchronisation bidirektional. Diese Anwendung verwendet die reine Downloadsynchronisation, damit die Zeilen in Ihrer Tabelle nicht in die Beispieldatenbank geladen werden.



    static bool do_sync( ULConnection * conn )
    {
        ul_sync_info info;
        ul_stream_error * se = &info.stream_error;
      
        ULDatabaseManager::EnableTcpipSynchronization();
        conn->InitSyncInfo( &info );
        info.stream = "TCPIP";
        info.version = "custdb 12.0";
        info.user_name = "50";
        info.download_only = true;
        if( !conn->Synchronize( &info ) ) {
            _tprintf( "Synchronization error \n" ));   
            _tprintf( "  stream_error_code is '%lu'\n", se->stream_error_code );
            _tprintf( "  system_error_code is '%ld'\n", se->system_error_code );
            _tprintf( "  error_string is '" );
            _tprintf( "%s", se->error_string );
            _tprintf( "'\n" );
            return false;
        }
        return true;
    }
  2. Fügen Sie die folgende Zeile unmittelbar hinter dem Aufruf der insert-Methode und vor dem Aufruf der select-Methode der main-Methode hinzu:

    do_sync(conn);
  3. Kompilieren Sie Ihre Anwendung mit nmake.

 ♦  So synchronisieren Sie Daten
  1. Starten Sie den MobiLink-Server.

    Führen Sie an der Eingabeaufforderung folgenden Befehl aus:

    mlsrv12 -c "dsn=SQL Anywhere 12 CustDB;uid=ml_server;pwd=sql" -v -vr -vs -zu+ -o custdbASA.log

    Die Option -zu+ ermöglicht das automatische Hinzufügen von Benutzern. Die Option -v+ aktiviert die ausführliche Protokollierung aller Meldungen.

    Weitere Hinweise zu dieser Option finden Sie unter MobiLink-Serveroptionen.

  2. Führen Sie Ihre Anwendung aus, indem Sie customer an der Eingabeaufforderung eingeben.

    Im Fenster des MobiLink-Servers werden Statusmeldungen angezeigt, die den Synchronisationsfortschritt beschreiben. Wenn die Synchronisation erfolgreich verläuft, zeigt die letzte Meldung Synchronization complete (Synchronisation abgeschlossen) an .