Как повторно инициализировать подписку (программным путем)
В этом разделе объясняется, как заново инициализировать подписку в Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) с помощью класса SqlCeReplication. Дополнительные сведения об использовании пространства имен SqlServerCe см. в справочной документации по пространству имен SqlServerCe.
Повторная инициализация подписки
Инициализируйте объект SqlCeReplication.
SqlCeReplication repl = new SqlCeReplication();
Настройте свойства соединения. В этих свойствах указывается имя и расположение публикации, на которую создается подписка, имя и расположение локальной базы данных SQL Server Compact 3.5 и расположение агента сервера 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";
Вызовите метод ReinitializeSubscription, чтобы пометить подписку для повторной инициализации. Если передать значение true в метод ReinitializeSubscription, изменения в подписчике будут загружены в издатель до выполнения повторной инициализации. Если передать значение false, все изменения в подписчике будут отменены при повторной инициализации.
repl.ReinitializeSubscription(true);
Чтобы заново наполнить подписку, следует вызвать метод Synchronize после вызова метода ReinitializeSubscription.
repl.Synchronize();
Пример
В приведенном примере показано, как заново инициализировать подписку SQL Server Compact 3.5. В этом примере сначала все изменения в подписчике загружаются в издатель, затем подписка заново инициализируется, после чего выполняется синхронизация данных.
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
См. также
Другие ресурсы
Использование репликации слиянием
Подписка на публикации (SQL Server Compact)
Повторная инициализация подписки (SQL Server Compact)
Справка и поддержка
Получение помощи (SQL Server Compact 3.5 с пакетом обновления 1)