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 :
Création de l'abonnement dans SQL Server Management Studio
Pour plus d'informations, consultez Procédure : créer un abonnement SQL Server Compact (SQL Server Management Studio)
Appel de la méthode AddSubscription
Pour plus d'informations, consultez Procédure : créer un abonnement (par programme)
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).