Partilhar via


Como reinicializar uma assinatura (programaticamente)

Neste tópico, você aprenderá como reinicializar uma assinatura no Microsoft SQL Server Compact 3.5 através da classe SqlCeReplication. Para obter mais informações sobre como usar o namespace SqlServerCe, consulte a documentação de referência de namespaces do SqlServerCe.

Para reinicializar uma assinatura

  1. Inicialize um objeto SqlCeReplication.

    SqlCeReplication repl = new SqlCeReplication();
    
  2. Defina as propriedades de conexão. Essas propriedades especificam o nome e o local da publicação que você está assinando, o nome e o local do banco de dados local do SQL Server Compact 3.5, e o local do Agente de Servidor do SQL Server Compact 3.5.

    repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa35.dll";
    repl.InternetLogin = "MyInternetLogin";
    repl.InternetPassword = "<password>";
    repl.Publisher = "MyPublisher";
    repl.PublisherDatabase = "MyPublisherDatabase";
    repl.PublisherLogin = "MyPublisherLogin";
    repl.PublisherPassword = "<password>";
    repl.Publication = "MyPublication";
    repl.Subscriber = "MySubscriber";
    repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf";
    
  3. Chame o método ReinitializeSubscription para marcar a assinatura para reinicialização. Se você passar true para o método ReinitializeSubscription, as alterações no Assinante serão carregadas no Editor antes da reinicialização. Se você passar false, todas as alterações no Assinante serão descartadas durante a reinicialização.

    repl.ReinitializeSubscription(true);
    
  4. Para preencher a assinatura, chame o método Synchronize depois de chamar o método ReinitializeSubscription.

    repl.Synchronize();
    

Exemplo

Este exemplo mostra como reinicializar uma assinatura do SQL Server Compact 3.5. Neste exemplo, todas as alterações do Assinante serão carregadas primeiro no Editor, a assinatura será reinicializada e depois os dados serão sincronizados.

SqlCeReplication repl = null;

try
{
   // Create SqlCeReplication instance
   //
   repl = new SqlCeReplication();
   repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa35.dll";
   repl.InternetLogin = "MyInternetLogin";
   repl.InternetPassword = "<password>";
   repl.Publisher = "MyPublisher";
   repl.PublisherDatabase = "MyPublisherDatabase";
   repl.PublisherLogin = "MyPublisherLogin";
   repl.PublisherPassword = "<password>";
   repl.Publication = "MyPublication";
   repl.Subscriber = "MySubscriber";
   repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf";

   // Mark the subscription for reinitialization with Upload first
  
   repl.ReinitializeSubscription(true);

   // Synchronize to SQL Server to populate the Subscription 

   repl.Synchronize();
}
catch (SqlCeException)
{
   // Handle errors here
}
finally
{
   // Dispose the repl object
   
   repl.Dispose();
}
Dim repl As SqlCeReplication = Nothing

Try
   ' Create SqlCeReplication instance

   repl = New SqlCeReplication()
   repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa35.dll"
   repl.InternetLogin = "MyInternetLogin"
   repl.InternetPassword = "<password>"
   repl.Publisher = "MyPublisher"
   repl.PublisherDatabase = "MyPublisherDatabase"
   repl.PublisherLogin = "MyPublisherLogin"
   repl.PublisherPassword = "<password>"
   repl.Publication = "MyPublication"
   repl.Subscriber = "MySubscriber"
   repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf"

   ' Mark the subscription for reinitialization with Upload first
            
   repl.ReinitializeSubscription(True)

   ' Synchronize to SQL Server to populate the Subscription 

   repl.Synchronize()
Catch
   ' Handle errors here
Finally
   ' Dispose the repl object
   
   repl.Dispose()
End Try

Consulte também

Outros recursos

Usando a replicação de mesclagem

Assinando publicações (SQL Server Compact)

Reinicializando uma assinatura (SQL Server Compact)