Erstellen eines Abonnements

Bevor Sie ein Abonnement erstellen können, müssen Sie die Microsoft SQL Server-Replikation konfigurieren, die SQL Server-Publikation erstellen und Microsoft Internetinformationsdienste (Internet Information Services, IIS) konfigurieren. Informationen zu diesem Prozess finden Sie unter Implementieren der Replikation (SQL Server Compact Edition) und Hilfe zum Assistenten zum Konfigurieren der Websynchronisierung.

Nachdem die Publikation erstellt und IIS ordnungsgemäß konfiguriert wurde, können Sie eines der folgenden Verfahren verwenden, um ein Abonnement für SQL Server 2005 Compact Edition (SQL Server Compact Edition) zu erstellen:

Aufrufen der AddSubscription-Methode

SQL Server Compact Edition-Anwendungen verwenden das Replication-Objekt, um programmgesteuert ein Abonnement zu erstellen und dieses Abonnement in eine SQL Server Compact Edition-Datenbank auf einem intelligenten Gerät von Microsoft zu downloaden. Dies erfolgt, indem die Anwendung das Replication-Objekt erstellt, die geeigneten Eigenschaften des Replication-Objekts festlegt und die AddSubscription-Methode aufruft. Anhand der Beispiele in diesem Thema wird gezeigt, wie hierbei vorzugehen ist.

Mehrere Abonnements und die AddSubscription-Methode

Da SQL Server Compact Edition die Synchronisierung einer einzelnen Datenbank mit mehreren Publikationen unterstützt, müssen Sie die Auswirkungen mehrerer Abonnements berücksichtigen, wenn Sie die AddSubscription-Methode verwenden.

Es gibt zwei Optionen, die verwendet werden, wenn die AddSubscription-Methode aufgerufen wird: CreateDatabase und ExistingDatabase. Die Option CreateDatabase ist nicht betroffen, wenn Sie mehrere Abonnements verwenden. Anders verhält es sich jedoch bei der Option ExistingDatabase. Wenn Sie ExistingDatabase verwenden, müssen Sie Werte für die Eigenschaften Publisher, Publication und PublisherDatabase angeben, bevor Sie die AddSubscription-Methode aufrufen.

Kopieren eines vorhandenen Abonnements

Sie können ein neues Abonnement erstellen, indem Sie ein vorhandenes Abonnement von einem intelligenten Gerät zu einem anderen kopieren. Auf diese Weise können Sie eine Anwendung für ein intelligentes Gerät problemlos auf vielen Geräten bereitstellen, wenn alle Abonnenten dieselbe Publikation verwenden.

Sie können das Erstabonnement auf einem intelligenten Gerät erstellen und die Anwendung dann bereitstellen, indem Sie die Anwendung und das Erstabonnement auf eine beliebige Anzahl von Geräten kopieren. Wenn die Anwendung erstmalig eine Synchronisierung vornimmt, erkennt SQL Server Compact Edition die Anwendung aufgrund des neuen Geräts und/oder der Änderung des physikalischen Ordnerpfads automatisch als neuen Abonnenten und erstellt ein neues Abonnement. Durch das Kopieren des Erstabonnements auf ein Gerät vermeiden Sie es, das Erstabonnement über das Netzwerk auf das Gerät zu downloaden.

Hinweis:
SQL Server Compact Edition unterstützt externe Speichergeräte, z. B. Compact Flash-Speicher und -Laufwerke. Ein effizientes Verfahren zum Bereitstellen großer SQL Server Compact Edition-Datenbanken besteht darin, sie auf diesen Speichergeräten zu verteilen. Verglichen mit dem Arbeitsspeicher des intelligenten Geräts weisen diese Speichergeräte jedoch relativ lange Zugriffszeiten auf. Die Verwendung dieser Geräte kann sich auf die Leistung Ihrer Anwendung auswirken.

Visual C++ für mobile Geräte

   ISSCEMerge      *pISSCEMerge = NULL;
   ISSCEErrors  *pISSCEErrors = NULL;
   HRESULT          hr;
   BSTR            bstr = NULL;
   BOOL            fInitialized = FALSE;
   LONG            lPubChanges;
   LONG            lPubConflicts;
   LONG            lSubChanges;

   /* Create the Replication object. */
   CoCreateInstance(CLSID_Replication, NULL, CLSCTX_INPROC_SERVER,
      IID_ISSCEMerge, (LPVOID *) &pISSCEMerge);
   
  /* Set Internet properties. */
   bstr = SysAllocString
     (L"https://www.adventure-works.com/sqlce/sqlcesa30.dll");
   pISSCEMerge->put_InternetURL(bstr);
   SysFreeString(bstr);

   bstr = SysAllocString(L"MyInternetLogin");
   pISSCEMerge->put_InternetLogin(bstr);
   SysFreeString(bstr);

   bstr = SysAllocString(L"<MyInternetPassword>");
   pISSCEMerge->put_InternetPassword(bstr);
   SysFreeString(bstr);
   
   /* Set Publisher properties */
   bstr = SysAllocString(L"SamplePublisher");
   pISSCEMerge->put_Publisher(bstr);
   SysFreeString(bstr);

   bstr = SysAllocString(L"AdventureWorks_SQLCE");
   pISSCEMerge->put_PublisherDatabase(bstr);
   SysFreeString(bstr);

   bstr = SysAllocString(L"SQLCEReplDemo");
   pISSCEMerge->put_Publication(bstr);
   SysFreeString(bstr);

   pISSCEMerge->put_PublisherSecurityMode(NT_AUTHENTICATION);

   /* Set Subscriber properties. */
   bstr = SysAllocString(L"Data Source=\\ssce.sdf");
   pISSCEMerge->put_SubscriberConnectionString(bstr);
   SysFreeString(bstr);

   bstr = SysAllocString(L"SQLCE Sub #1");
   pISSCEMerge->put_Subscriber(bstr);
   SysFreeString(bstr);

   /* Create the new anonymous subscription. */
   pISSCEMerge->AddSubscription(CREATE_DATABASE);

   /* Perform the first synchronization to download the initial  
          replica. */
   hr = pISSCEMerge->Initialize();
   if (SUCCEEDED(hr))
      {
      fInitialized = TRUE;
      hr = pISSCEMerge->Run();
      }

   if (SUCCEEDED(hr))
      {
      pISSCEMerge->get_PublisherChanges(&lPubChanges);
      pISSCEMerge->get_PublisherConflicts(&lPubConflicts);
      pISSCEMerge->get_SubscriberChanges(&lSubChanges);
      }
   else
      {
   if(SUCCEEDED(hr = pISSCEMerge->get_ErrorRecords(&pISSCEErrors)))
      {
      ShowErrors(pISSCEErrors);
      pISSCEErrors->Release();
      };
      }

   if (fInitialized)
      {
      (void)pISSCEMerge->Terminate();

   

Siehe auch

Konzepte

Unterstützen von mehreren Abonnements
Löschen eines Abonnements
Erneute Initialisierung eines Abonnements (SQL Server Compact Edition)

Hilfe und Information

Informationsquellen für SQL Server Compact Edition