Partager via


Création d'un abonnement

Avant de pouvoir créer un abonnement, vous devez configurer la réplication Microsoft SQL Server, créer la publication SQL Server et configurer Microsoft Internet Information Services (IIS). Pour plus d'informations sur ce processus, consultez Implémentation de la réplication [SQL Server Compact Edition] et Aide de l'Assistant Configuration de la synchronisation Web.

Une fois la publication créée et IIS correctement configuré, vous pouvez créer un abonnement SQL Server 2005 Compact Edition (SQL Server Compact Edition) à l'aide d'une des méthodes suivantes :

Appel de la méthode AddSubscription

Les applications SQL Server Compact Edition utilisent l'objet Replication pour créer un abonnement par programme et télécharger celui-ci vers une base de données SQL Server Compact Edition sur un appareil de type Microsoft « smart device ». Pour ce faire, l'application crée l'objet Replication, définit les propriétés adéquates de l'objet Replication et appelle la méthode AddSubscription. Les exemples proposés dans cette rubrique indiquent comment procéder.

Abonnements multiples et méthode AddSubscription

Étant donné que SQL Server Compact Edition prend en charge la synchronisation d'une seule base de données avec plusieurs publications, vous devez tenir compte des effets des abonnements multiples lorsque vous utilisez la méthode AddSubscription.

Deux options sont utilisées lors de l'appel de la méthode AddSubscription : CreateDatabase et ExistingDatabase. Contrairement à l'option CreateDatabase, l'option ExistingDatabase est affectée lorsque vous utilisez des abonnements multiples. Lorsque vous utilisez ExistingDatabase, vous devez fournir des valeurs pour les propriétés Publisher, Publication et PublisherDatabase avant d'appeler la méthode AddSubscription.

Copie d'un abonnement existant

Vous pouvez créer un abonnement en copiant un abonnement existant d'un appareil de type « smart device » sur un autre. Vous pouvez ainsi déployer en toute simplicité une application pour appareil de type « smart device » sur plusieurs appareils lorsque tous les Abonnés utilisent la même publication.

Vous pouvez créer l'abonnement initial sur un appareil de type « smart device », puis déployer l'application en copiant l'application et l'abonnement initial sur autant d'appareils que vous le désirez. Lorsque l'application se synchronise pour la première fois, SQL Server Compact Edition la reconnaît automatiquement en tant que nouvel Abonné, en raison du nouvel appareil et/ou de la modification de l'emplacement du dossier physique, et crée un nouvel abonnement. En copiant l'abonnement initial sur un appareil, vous évitez de télécharger l'abonnement initial sur l'appareil via le réseau.

Remarque :
SQL Server Compact Edition prend en charge les périphériques de stockage externes, notamment les lecteurs et la mémoire CompactFlash. Un moyen efficace de déployer des bases de données SQL Server Compact Edition volumineuses consiste à les distribuer sur ces périphériques de stockage. Ceux-ci requièrent toutefois des délais d'accès relativement longs en comparaison à la mémoire RAM de l'appareil de type « smart device ». L'utilisation de ces périphériques peut affecter les performances de votre application.

Visual C++ for Devices

   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();

   

Voir aussi

Concepts

Prise en charge d'abonnements multiples
Suppression d'un abonnement
Réinitialisation d'un abonnement (SQL Server Compact Edition)

Aide et information

Assistance sur SQL Server Compact Edition