다음을 통해 공유


방법: 구독 삭제(프로그래밍 방식)

이 항목에서는 SqlCeReplication 클래스를 사용하여 Microsoft SQL Server Compact 3.5 데이터베이스에서 구독을 삭제하는 방법에 대해 설명합니다. SqlServerCe 네임스페이스를 사용하는 방법은 SqlServerCe 네임스페이스 참조 설명서를 참조하십시오.

SQL Server Compact 3.5의 절차

구독을 삭제하려면

  1. SqlCeReplication 개체를 초기화합니다.

  2. 다음 SqlCeReplication 개체 속성을 설정합니다.

    • SubscriberConnectionString

    • Subscriber

    • Publisher

    • Publication

    • PublisherDatabase

  3. DropSubscription 메서드를 호출하여 DropOption을 실행합니다. DropOption을 사용하면 데이터베이스를 보관 또는 삭제할 수 있습니다. DropDatabase에 DropOption을 지정하는 경우 데이터베이스에 구독이 둘 이상 존재하면 데이터베이스는 삭제되지 않습니다.

다음 예에서는 MyDatabase.sdf 데이터베이스에서 구독을 삭제하는 방법을 보여 줍니다. 구독을 삭제하면 데이터베이스가 삭제됩니다.

        SqlCeReplication repl = null;
        try 
    {
            // Set the Replication object properties.
            repl = new SqlCeReplication();
            repl.SubscriberConnectionString = 
  @"Data Source='ssce.sdf'";
            repl.Publisher = @"servername";
            repl.PublisherDatabase = @"SQLMobile";
            repl.Publication = @"SQLMobile";

            // Drop the subscription and delete the database.
            repl.DropSubscription(DropOption.DropDatabase);
        }
        catch(SqlCeException ex)
   {
            // Use your own error handling routine to show error information.
            // ShowError.ShowErrors(ex);
        }
        finally 
        {
            // Dispose of the Replication object.
            repl.Dispose();
        }
      Dim repl As SqlCeReplication = Nothing
      Try
         ' Set the Replication object properties.
         repl = New SqlCeReplication()
         repl.SubscriberConnectionString = "Data Source='ssce.sdf'"
         repl.Publisher = "servername"
         repl.PublisherDatabase = "SQLMobile"
         repl.Publication = "SQLMobile"

         ' Drop the subscription and delete the database.
         repl.DropSubscription(DropOption.DropDatabase)
      
      Catch ex As SqlCeException
      ' Use your own error handling routine to show error information.
      ' ShowErrors(ex)
      
      Finally
         ' Dispose of the Replication object.
         repl.Dispose()
      End Try
   ISSCEMerge      *pISSCEMerge = NULL;
   BSTR            bstr = NULL;

   /* Create the Replication object. */
   CoCreateInstance(CLSID_Replication, NULL, CLSCTX_INPROC_SERVER,
      IID_ISSCEMerge, (LPVOID *) &pISSCEMerge);
   
   /* Set Subscriber properties. */
   bstr = SysAllocString(L"data source=\\Ssce.sdf");
   pISSCEMerge->put_SubscriberConnectionString(bstr);
   SysFreeString(bstr);

   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);

   /* Drop the subscription and delete the database. */
   pISSCEMerge->DropSubscription(DROP_DATABASE));

참고 항목

관련 자료

병합 복제 사용

구독 삭제