SQL Server Compact Edition サブスクリプションを再初期化する方法 (プログラム)
ここでは、SqlCeReplication クラスを使用して Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) でサブスクリプションを再初期化する方法について学習します。SqlServerCe 名前空間の使用については、SqlServerCe 名前空間のリファレンス ドキュメントを参照してください。
サブスクリプションを再初期化するには
SqlCeReplication オブジェクトを初期化します。
SqlCeReplication repl = new SqlCeReplication();
接続プロパティを設定します。これらのプロパティでは、サブスクライブするパブリケーションの名前と場所、ローカルの SQL Server Compact Edition データベースの名前と場所、および SQL Server Compact Edition サーバー エージェントの場所を指定します。
repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa30.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 メソッドを呼び出して、サブスクリプションを再初期化するようにマークします。ReinitializeSubscription メソッドに true を渡すと、再初期化が発生する前に、サブスクライバの変更がパブリッシャにアップロードされます。false を渡すと、再初期化中にサブスクライバの変更が破棄されます。
repl.ReinitializeSubscription(true);
サブスクリプションを再作成するには、ReinitializeSubscription メソッドを呼び出した後で、Synchronize メソッドを呼び出す必要があります。
repl.Synchronize();
使用例
次の例では、SQL Server Compact Edition サブスクリプションを再初期化する方法を示します。この例では、最初にサブスクライバのすべての変更をパブリッシャにアップロードし、サブスクリプションを再初期化した後、データを同期しています。
SqlCeReplication repl = null;
try
{
// Create SqlCeReplication instance
//
repl = new SqlCeReplication();
repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa30.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/sqlcesa30.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 Edition)
サブスクリプションの再初期化 (SQL Server Compact Edition)