Criando uma assinatura
Antes de criar uma assinatura, é necessário configurar a replicação do MicrosoftSQL Server, criar a publicação do SQL Server e configurar os Serviços de Informações da Internet (IIS) da Microsoft. Para obter informações sobre esse processo, consulte Implementando a replicação (SQL Server Compact) e Ajuda do Assistente para Configurar Sincronização da Web.
Após a publicação ter sido criada e o IIS ter sido configurado corretamente, você poderá criar uma assinatura do SQL Server Compact 3.5 usando um destes métodos:
Criando a assinatura no SQL Server Management Studio
Para obter mais informações, consulte Como criar uma assinatura do SQL Server Compact (SQL Server Management Studio)
Chamando o método AddSubscription
Para obter mais informações, consulte Como criar uma assinatura (programaticamente)
Chamando o método AddSubscription
Os aplicativos do SQL Server Compact 3.5 usam o objeto Replication para criar programaticamente uma assinatura e baixá-la em um banco de dados do SQL Server Compact 3.5 em um dispositivo inteligente da Microsoft. Para isso, o aplicativo cria o objeto Replication, define as propriedades adequadas do objeto Replication e chama o método AddSubscription. Os exemplos deste tópico mostram como fazer isso.
Várias assinaturas e o método AddSubscription
Como o SQL Server Compact 3.5 dá suporte para sincronização de um único banco de dados com várias publicações, você deve considerar os efeitos de várias assinaturas ao usar o método AddSubscription.
Duas opções são usadas ao chamar o método AddSubscription: CreateDatabase e ExistingDatabase. A opção CreateDatabase não é afetada quando você usa várias assinaturas, mas a opção ExistingDatabase é. Ao usar ExistingDatabase, você deve fornecer valores para as propriedades Publisher, Publication e PublisherDatabase antes de chamar o método AddSubscription.
Copiando uma assinatura existente
É possível criar uma nova assinatura copiando uma assinatura existente de um dispositivo inteligente para outro. Isso facilita a implantação do aplicativo de um dispositivo inteligente em muitos dispositivos quando todos os Assinantes estiverem usando a mesma publicação.
Você pode criar a assinatura inicial em um dispositivo inteligente e depois implantar o aplicativo copiando-o juntamente com a assinatura inicial para quantos dispositivos desejar. Quando o aplicativo for sincronizado pela primeira vez, o SQL Server Compact 3.5 o reconhecerá automaticamente como um novo Assinante, devido ao novo dispositivo e/ou à alteração no local da pasta física, e criará uma nova assinatura. Copiando a assinatura inicial para um dispositivo, você evita o download da assinatura inicial para o dispositivo pela rede.
Observação
O SQL Server Compact 3.5 dá suporte para dispositivos de armazenamento externos, inclusive memória e unidades Compact Flash. Uma maneira eficiente de implantar grandes bancos de dados do SQL Server Compact 3.5 é distribuí-los nesses dispositivos de armazenamento. No entanto, o tempo de acesso desses dispositivos é relativamente longo, quando comparado com a RAM do dispositivo inteligente. O uso desses dispositivos pode afetar o desempenho do seu aplicativo.
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();
}
Observação
Para ver as propriedades de cadeia de conexão com suporte, consulte Propriedade LocalConnectionString (RDA).