Partager via


Création d'un abonnement

Avant de pouvoir créer un abonnement, vous devez configurer la réplication MicrosoftSQL 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) 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 Compact 3.5 à l'aide d'une des méthodes suivantes :

Appel de la méthode AddSubscription

Les applications SQL Server Compact 3.5 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 3.5 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 3.5 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 3.5 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.

Notes

SQL Server Compact 3.5 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 3.5 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/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();
      }

Notes

Pour plus d'informations sur les propriétés de chaîne de connexion prises en charge, consultez Propriété LocalConnectionString (RDA).

   

Voir aussi

Autres ressources

Assistant Nouvel abonnement

Prise en charge d'abonnements multiples

Suppression d'un abonnement

Réinitialisation d'un abonnement (SQL Server Compact)