Erstellen eines Abonnements

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

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

Aufrufen der AddSubscription-Methode

SQL Server Compact 3.5-Anwendungen verwenden das Replication-Objekt, um programmgesteuert ein Abonnement zu erstellen und dieses Abonnement in eine SQL Server Compact 3.5-Datenbank auf einem intelligenten Gerät von Microsoft herunterzuladen. 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 3.5 die Synchronisierung einer einzelnen Datenbank mit mehreren Veröffentlichungen 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 Veröffentlichung 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 3.5 die Anwendung aufgrund des neuen Geräts und/oder der Änderung des physischen 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 herunterzuladen.

Hinweis

SQL Server Compact 3.5 unterstützt externe Speichergeräte, z. B. Compact Flash-Speicher und -Laufwerke. Ein effizientes Verfahren zum Bereitstellen großer SQL Server Compact 3.5-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/sqlcesa35.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();
      }

Hinweis

Informationen zu unterstützten Verbindungszeichenfolgeneigenschaften finden Sie unter LocalConnectionString-Eigenschaft (RDA).

   

Siehe auch

Verweis

Assistent für neue Abonnements

Konzepte

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

Hilfe und Informationen

Informationsquellen (SQL Server Compact 3.5 Service Pack 1)