Crear una suscripción

Antes de crear una suscripción, es necesario configurar la replicación de Microsoft SQL Server, crear la publicación de SQL Server y configurar Microsoft Internet Information Services (IIS). Para obtener información sobre este proceso, vea Implementar la replicación (SQL Server Compact) y Ayuda del Asistente para configurar la sincronización web.

Una vez que se haya creado la publicación y que IIS se haya configurado correctamente, puede crear una suscripción de SQL Server Compact 3.5 utilizando cualquiera de estos métodos:

Llamar al método AddSubscription

Las aplicaciones de SQL Server Compact 3.5 utilizan el objeto Replication para crear mediante programación una suscripción y descargarla en una base de datos de SQL Server Compact 3.5 de un dispositivo inteligente de Microsoft. Para ello, la aplicación crea el objeto Replication estableciendo correctamente las propiedades del objeto Replication y llamando al método AddSubscription. En los ejemplos de este tema se muestra cómo realizarlo.

Varias suscripciones y el método AddSubscription

SQL Server Compact 3.5 es compatible con la sincronización de una sola base de datos con varias publicaciones, por lo que debe tener presentes las consecuencias de tener varias suscripciones cuando utilice el método AddSubscription.

El método AddSubscription se puede llamar de dos formas: CreateDatabase y ExistingDatabase. La opción CreateDatabase no se ve afectada al utilizar varias suscripciones, pero no ocurre lo mismo con la opción ExistingDatabase. Cuando utilice ExistingDatabase, debe proporcionar valores para las propiedades Publisher, Publication y PublisherDatabase antes de llamar al método AddSubscription.

Copiar una suscripción existente

Puede crear una nueva suscripción copiando una existente de un dispositivo inteligente en otro. Esto facilita la implementación de un dispositivo inteligente en muchos dispositivos cuando todos los suscriptores utilizan la misma publicación.

Es posible crear la suscripción inicial en un dispositivo inteligente y, a continuación, implementar la aplicación copiando dicha aplicación y la suscripción inicial en tantos dispositivos como desee. Cuando la aplicación se sincroniza por primera vez, SQL Server Compact 3.5 la reconoce automáticamente como un nuevo suscriptor debido al cambio de ubicación del nuevo dispositivo o carpeta física, y crea una nueva suscripción. El hecho de copiar la suscripción inicial en un dispositivo le evita descargar la suscripción inicial en el dispositivo a través de la red.

Nota

SQL Server Compact 3.5 es compatible con dispositivos de almacenamiento externos, incluidas las unidades y la memoria Compact Flash. Una forma eficaz de implementar bases de datos de gran tamaño de SQL Server Compact 3.5 es distribuirlas en estos dispositivos de almacenamiento. Sin embargo, los tiempos de acceso de estos dispositivos son relativamente largos en comparación con la RAM del dispositivo inteligente. El uso de estos dispositivos puede afectar al rendimiento de la aplicación.

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

Nota

Para obtener información acerca de las propiedades admitidas de cadena de conexión, vea Propiedad LocalConnectionString (RDA).

   

Vea también

Otros recursos

Asistente para nueva suscripción

Compatibilidad con varias suscripciones

Quitar una suscripción

Reinicializar una suscripción (SQL Server Compact)