Partilhar via


Criando uma assinatura

Antes de criar uma assinatura, é necessário configurar a replicação do MicrosoftSQL Server, criar a publicação do SQL Server e configurar os Serviços de Informações da Internet (IIS) da Microsoft. Para obter informações sobre esse processo, consulte Implementando a replicação (SQL Server Compact) e Ajuda do Assistente para Configurar Sincronização da Web.

Após a publicação ter sido criada e o IIS ter sido configurado corretamente, você poderá criar uma assinatura do SQL Server Compact 3.5 usando um destes métodos:

Chamando o método AddSubscription

Os aplicativos do SQL Server Compact 3.5 usam o objeto Replication para criar programaticamente uma assinatura e baixá-la em um banco de dados do SQL Server Compact 3.5 em um dispositivo inteligente da Microsoft. Para isso, o aplicativo cria o objeto Replication, define as propriedades adequadas do objeto Replication e chama o método AddSubscription. Os exemplos deste tópico mostram como fazer isso.

Várias assinaturas e o método AddSubscription

Como o SQL Server Compact 3.5 dá suporte para sincronização de um único banco de dados com várias publicações, você deve considerar os efeitos de várias assinaturas ao usar o método AddSubscription.

Duas opções são usadas ao chamar o método AddSubscription: CreateDatabase e ExistingDatabase. A opção CreateDatabase não é afetada quando você usa várias assinaturas, mas a opção ExistingDatabase é. Ao usar ExistingDatabase, você deve fornecer valores para as propriedades Publisher, Publication e PublisherDatabase antes de chamar o método AddSubscription.

Copiando uma assinatura existente

É possível criar uma nova assinatura copiando uma assinatura existente de um dispositivo inteligente para outro. Isso facilita a implantação do aplicativo de um dispositivo inteligente em muitos dispositivos quando todos os Assinantes estiverem usando a mesma publicação.

Você pode criar a assinatura inicial em um dispositivo inteligente e depois implantar o aplicativo copiando-o juntamente com a assinatura inicial para quantos dispositivos desejar. Quando o aplicativo for sincronizado pela primeira vez, o SQL Server Compact 3.5 o reconhecerá automaticamente como um novo Assinante, devido ao novo dispositivo e/ou à alteração no local da pasta física, e criará uma nova assinatura. Copiando a assinatura inicial para um dispositivo, você evita o download da assinatura inicial para o dispositivo pela rede.

Observação

O SQL Server Compact 3.5 dá suporte para dispositivos de armazenamento externos, inclusive memória e unidades Compact Flash. Uma maneira eficiente de implantar grandes bancos de dados do SQL Server Compact 3.5 é distribuí-los nesses dispositivos de armazenamento. No entanto, o tempo de acesso desses dispositivos é relativamente longo, quando comparado com a RAM do dispositivo inteligente. O uso desses dispositivos pode afetar o desempenho do seu aplicativo.

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

Observação

Para ver as propriedades de cadeia de conexão com suporte, consulte Propriedade LocalConnectionString (RDA).

   

Consulte também

Outros recursos

Assistente de Nova Assinatura

Suporte para várias assinaturas

Descartando uma assinatura

Reinicializando uma assinatura (SQL Server Compact)