サブスクリプションの作成

サブスクリプションを作成するには、先に Microsoft SQL Server レプリケーションを構成し、SQL Server パブリケーションを作成し、Microsoft インターネット インフォメーション サービス (IIS) を構成する必要があります。この処理の詳細については、「レプリケーションの実装 (SQL Server Compact Edition)」および「Web 同期の構成ウィザードのヘルプ」を参照してください。

パブリケーションを作成し、IIS を正しく構成したら、以下のいずれかの方法で SQL Server 2005 Compact Edition (SQL Server Compact Edition) サブスクリプションを作成できます。

AddSubscription メソッドの呼び出し

SQL Server Compact Edition アプリケーションでは、プログラムで Replication オブジェクトを使用してサブスクリプションを作成し、そのサブスクリプションを Microsoft スマート デバイス上の SQL Server Compact Edition データベースにダウンロードします。アプリケーションでは、この操作を実行するために Replication オブジェクトを作成して、適切な Replication オブジェクトのプロパティを設定し、AddSubscription メソッドを呼び出します。このトピックの例では、この操作の実行方法を示します。

複数のサブスクリプションと AddSubscription メソッド

SQL Server Compact Edition では 1 つのデータベースを複数のパブリケーションと同期できるので、AddSubscription メソッドを使用するときは、複数のサブスクリプションの影響を考慮する必要があります。

AddSubscription メソッドの呼び出しでは、CreateDatabase と ExistingDatabase の 2 つのオプションを使用できます。複数のサブスクリプションを使用する場合、CreateDatabase オプションは影響を受けませんが、ExistingDatabase オプションは影響を受けます。ExistingDatabase を使用する場合、AddSubscription メソッドを呼び出す前に、Publisher プロパティ、Publication プロパティ、および PublisherDatabase プロパティの値を指定する必要があります。

既存のサブスクリプションのコピー

スマート デバイスどうしで既存のサブスクリプションをコピーして、新しいサブスクリプションを作成できます。これにより、すべてのサブスクライバで同じパブリケーションが使用されているときに、多数のデバイスにスマート デバイス アプリケーションを配置することが容易になります。

1 台のスマート デバイスに初期サブスクリプションを作成したら、アプリケーションと初期サブスクリプションを必要な数のデバイスにコピーすることによって、アプリケーションを配置できます。アプリケーションの初回同期時、SQL Server Compact Edition では新しいデバイスや物理フォルダの場所の変更に応じて、アプリケーションを新しいサブスクライバとして自動的に認識し、新しいサブスクリプションを作成します。初期サブスクリプションをデバイスにコピーすると、初期サブスクリプションをネットワーク経由でデバイスにダウンロードする必要がなくなります。

メモ :
SQL Server Compact Edition では、コンパクト フラッシュ メモリやドライブを含む外部記憶デバイスがサポートされています。大規模な SQL Server Compact Edition データベースを効率的に導入するには、この種の記憶デバイスを使って配布するのも 1 つの方法です。ただし、スマート デバイスの RAM と比較すると、これらの記憶デバイスではアクセス時間が比較的長くなります。これらのデバイスを使用すると、アプリケーションのパフォーマンスに影響する場合があります。

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/sqlcesa30.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();

   

参照

概念

複数のサブスクリプションのサポート
サブスクリプションの削除
サブスクリプションの再初期化 (SQL Server Compact Edition)

ヘルプおよび情報

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