구독 만들기

구독을 만들려면 MicrosoftSQL Server 복제를 구성하고 SQL Server 게시를 만든 다음 Microsoft 인터넷 정보 서비스(IIS)를 구성해야 합니다. 이 프로세스에 대한 자세한 내용은 복제 구현(SQL Server Compact)웹 동기화 구성 마법사 도움말을 참조하십시오.

게시를 만들고 IIS를 올바르게 구성한 후에는 다음 두 가지 방법 중 하나를 사용하여 SQL Server Compact 3.5 구독을 만들 수 있습니다.

AddSubscription 메서드 호출

SQL Server Compact 3.5 응용 프로그램에서는 Replication 개체를 사용하여 프로그래밍 방식으로 구독을 만든 다음 Microsoft 스마트 장치의 SQL Server Compact 3.5 데이터베이스에 이 구독을 다운로드합니다. 이 응용 프로그램에서는 Replication 개체를 만들고 해당 Replication 개체 속성을 설정한 다음 AddSubscription 메서드를 호출하여 이러한 작업을 수행합니다. 이 항목의 예를 통해 수행 방법을 알 수 있습니다.

여러 구독 및 AddSubscription 메서드

SQL Server Compact 3.5에서는 단일 데이터베이스와 다중 게시를 동기화할 수 있으므로 AddSubscription 메서드를 사용할 때 여러 구독의 영향을 고려해야 합니다.

AddSubscription 메서드를 호출할 경우 CreateDatabase 및 ExistingDatabase의 두 가지 옵션을 사용할 수 있습니다. 여러 구독을 사용하는 경우 CreateDatabase 옵션은 영향을 받지 않지만 ExistingDatabase 옵션에는 영향이 있습니다. ExistingDatabase를 사용하는 경우 AddSubscription 메서드를 호출하기 전에 Publisher, Publication 및 PublisherDatabase 속성 값을 제공해야 합니다.

기존 구독 복사

한 스마트 장치에서 다른 장치로 기존 구독을 복사하여 새 구독을 만들 수 있습니다. 모든 구독자들이 같은 게시를 사용하는 경우 이 방법을 사용하면 여러 장치에 스마트 장치 응용 프로그램을 간편하게 배포할 수 있습니다.

한 스마트 장치에서 초기 구독을 만든 후 응용 프로그램과 함께 복사하여 필요한 수만큼의 장치에 응용 프로그램을 배포할 수 있습니다. 응용 프로그램을 최초로 동기화하면 새 장치 또는 물리적 폴더 위치가 변경되므로 SQL Server Compact 3.5에서는 이를 새 구독자로 자동 인식하여 새 구독을 만듭니다. 초기 구독을 장치에 복사하면 네트워크를 통해 장치에 다운로드하지 않아도 됩니다.

참고

SQL Server Compact 3.5에서는 CF(컴팩트 플래시) 메모리 및 드라이브와 같은 외부 저장 장치를 지원합니다. 대형 SQL Server Compact 3.5 데이터베이스를 배포하는 경우 이러한 저장 장치에 분산 배치하는 것이 효과적입니다. 그러나 저장 장치는 스마트 장치 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/sqlcesa35.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();
      }

참고

지원되는 연결 문자열 속성을 보려면 LocalConnectionString 속성(RDA)을 참조하십시오.

   

참고 항목

관련 자료

새 구독 마법사

여러 구독 지원

구독 삭제

구독 다시 초기화(SQL Server Compact)