Crear una suscripción
Antes de crear una suscripción, es necesario configurar la réplica de Microsoft SQL Server, crear la publicación de SQL Server y configurar los Servicios de Internet Information Server (IIS) de Microsoft. Para obtener información sobre este proceso, vea Implementar la réplica (SQL Server Compact Edition) 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 2005 Compact Edition (SQL Server Compact Edition) utilizando cualquiera de estos métodos:
- Crear la suscripción en SQL Server Management Studio
Para obtener más información, vea Cómo crear una suscripción de SQL Server Compact Edition (SQL Server Management Studio) - Llame al método AddSubscription.
Para obtener más información, vea Cómo crear una suscripción de SQL Server Compact Edition (mediante programación)
Llamar al método AddSubscription
Las aplicaciones de SQL Server Compact Edition utilizan el objeto Replication para crear mediante programación una suscripción y descargarla en una base de datos de SQL Server Compact Edition 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 Edition 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 Edition 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 Edition 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 Edition 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/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();
Vea también
Conceptos
Compatibilidad con varias suscripciones
Quitar una suscripción
Reinicializar una suscripción (SQL Server Compact Edition)