SQL Server Compact Edition サブスクリプションを再初期化する方法 (プログラム)

ここでは、SqlCeReplication クラスを使用して Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) でサブスクリプションを再初期化する方法について学習します。SqlServerCe 名前空間の使用については、SqlServerCe 名前空間のリファレンス ドキュメントを参照してください。

サブスクリプションを再初期化するには

  1. SqlCeReplication オブジェクトを初期化します。

    SqlCeReplication repl = new SqlCeReplication();
    
  2. 接続プロパティを設定します。これらのプロパティでは、サブスクライブするパブリケーションの名前と場所、ローカルの 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";
    
  3. ReinitializeSubscription メソッドを呼び出して、サブスクリプションを再初期化するようにマークします。ReinitializeSubscription メソッドに true を渡すと、再初期化が発生する前に、サブスクライバの変更がパブリッシャにアップロードされます。false を渡すと、再初期化中にサブスクライバの変更が破棄されます。

    repl.ReinitializeSubscription(true);
    
  4. サブスクリプションを再作成するには、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)

ヘルプおよび情報

SQL Server Compact Edition のサポートについて