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) » UltraLite - C- und C++-Programmierung » 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 11-Beispieldatenbank synchronisiert. Die UltraLite 11-Beispieldatenbank verfügt über die Tabelle ULCustomer, deren Spalten die aus der customer-Tabelle Ihrer lokalen UltraLite-Datenbank umfassen.

Diese Lektion setzt Vertrautheit mit der MobiLink-Synchronisation voraus.

♦  Synchronisation zur Anwendung hinzufügen
  1. Fügen Sie nachstehende Methode der Datei customer.cpp hinzu. Diese Methode führt die folgenden Aufgaben aus:

    • Sie legt den Synchronisationsdatenstrom auf TCP/IP fest, indem ULEnableTcpipSynchronization aufgerufen wird. Die Synchronisation kann auch über HTTP, HotSync oder HTTPS durchgeführt werden. Weitere Hinweise finden Sie unter 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.

    bool do_sync( Connection * conn ) {
      ul_synch_info info;
      ul_stream_error * se = &info.stream_error;
      
      ULEnableTcpipSynchronization( Tutca.GetCA() );
      conn->InitSynchInfo( &info );
      info.stream = ULSocketStream();
      info.version = UL_TEXT( "custdb 11.0" );
      info.user_name = UL_TEXT( "50" );
      info.download_only = true;
      if( !conn->Synchronize( &info ) ) {
          _tprintf( _TEXT("Synchronization error \n" ));   
       _tprintf( _TEXT("  stream_error_code is '%lu'\n"), se->stream_error_code );
       _tprintf( _TEXT("  system_error_code is '%ld'\n"), se->system_error_code );
       _tprintf( _TEXT("  error_string is '") );
       _tprintf( _TEXT("%s"), se->error_string );
       _tprintf( _TEXT("'\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:

    mlsrv11 -c "dsn=SQL Anywhere 11 CustDB" -v+ -zu+

    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 Meldungen angezeigt, die den Synchronisationsfortschritt beschreiben. Wenn die Synchronisation erfolgreich verläuft, zeigt die letzte Meldung Synchronisation abgeschlossen an.