Compartilhar via


Passo a passo: provisionando outro cliente SQL Compact usando a inicialização de instantâneo

A inicialização de instantâneo foi criada para reduzir o tempo necessário para inicializar um banco de dados cliente. Depois que um banco de dados cliente tiver sido inicializado por meio da inicialização completa, os bancos de dados subsequentes poderão ser inicializados com o uso de um instantâneo do primeiro banco de dados cliente. Um instantâneo é um banco de dados do SQL Server Compact especialmente preparado que contém esquema de tabela, dados (opcionais) e infraestrutura de controle de alterações. Durante a primeira sessão de sincronização do novo cliente com o servidor, os metadados específicos ao cliente são atualizados e as alterações ocorridas no servidor desde que o instantâneo foi criado são baixadas para o banco de dados cliente.

Importante

Os instantâneos devem ser gerados somente quando não há atividade no banco de dados do SQL Server Compact. Não há suporte para operações simultâneas de qualquer tipo durante a geração do instantâneo.

No passo a passo Passo a passo: provisionando um cliente SQL Compact, você criou um banco de dados do SQL Server Compact SyncCompactDB e o sincronizou com o banco de dados servidor SyncDB. Nesse passo a passo, você criará um aplicativo de console que cria e inicializa um segundo banco de dados do SQL Server Compact usando o instantâneo do banco de dados SyncCompactDB.

Para gerar o instantâneo do primeiro cliente para criar o segundo cliente

  1. No Visual Studio, no Gerenciador de Soluções, clique com o botão direito do mouse em Solução ‘SyncSQLServerAndSQLCompact’, aponte para Adicionar e clique em Novo Projeto.

  2. Selecione Visual C# em Tipos de Projeto e selecione Aplicativo do Console em Modelos.

  3. Digite ProvisionSecondCompactClient para nome do projeto.

  4. Clique em OK para fechar a caixa de diálogo Novo Projeto.

  5. Na janela Gerenciador de Soluções, clique com o botão direito do mouse em ProvisionSecondCompactClient e clique em Adicionar Referência.

  6. Selecione Microsoft.Synchronization, Microsoft.Synchornization.Data, Microsoft.Synchronization.Data.SqlServer, Microsoft.Synchronization.Data.SqlServerCe e clique em OK para fechar a caixa de diálogo Adicionar Referência.

  7. Repita as duas etapas anteriores para adicionar uma referência ao assembly System.Data.SqlServerCe.

  8. Adicione as instruções using a seguir ao início do arquivo Program.cs após as instruções using existentes.

    using System.Data;
    using System.Data.SqlClient;
    using System.Data.SqlServerCe;
    
    using Microsoft.Synchronization;
    using Microsoft.Synchronization.Data;
    using Microsoft.Synchronization.Data.SqlServer;
    using Microsoft.Synchronization.Data.SqlServerCe;
    
  9. Adicione o código a seguir ao método Main para criar uma conexão SQL ao banco de dados compacto.

    // connect to the first compact client DB
    SqlCeConnection clientConn = new SqlCeConnection(@"Data Source='C:\SyncSQLServerAndSQLCompact\SyncCompactDB.sdf'");
    
  10. Adicione o código a seguir ao método Main para gerar um instantâneo do banco de dados. O código cria um objeto SqlCeSyncStoreSnapshotInitialization e invoca o método GenerateSnapshot(SqlCeConnection, String) nele para usar um instantâneo do banco de dados SyncCompactDB para criar e inicializar um segundo banco de dados compacto do SQL Server denominado SyncCompactDB2.

    // create a snapshot of SyncCompactDB and save it to SyncCompactDB2 database
    SqlCeSyncStoreSnapshotInitialization syncStoreSnapshot = new SqlCeSyncStoreSnapshotInitialization();
    syncStoreSnapshot.GenerateSnapshot(clientConn, @"C:\SyncSQLServerAndSQLCompact\SyncCompactDB2.sdf");
    
  11. No Gerenciador de Soluções, clique com o botão direito do mouse em ProvisionSecondCompactClient e clique em Compilar.

  12. No Gerenciador de Soluções, clique com o botão direito do mouse em ProvisionSecondCompactClient novamente e clique em Definir como Projeto de Inicialização.

    Aviso

    Se você não executar esta etapa, pressione Ctrl+F5 novamente, e o aplicativo ExecuteCompactSync será executado.

  13. Pressione Ctrl+F5 para executar o programa.

  14. Pressione ENTER para fechar a janela do prompt de comando.

Verificar se o segundo banco de dados foi criado

A lista a seguir contém etapas para verificar se o segundo banco de dados compacto denominado SyncCompactDB2 foi criado.

  1. No SQL Server Management Studio, clique no menu Arquivo e em Conectar Pesquisador de Objetos.

  2. Na caixa de diálogo Conectar ao Servidor, selecione SQL Server Compact Edition para Tipo de servidor.

  3. Digite C:\SyncSQLServerAndSQLCompact\SyncCompactDB2.sdf para Arquivo de banco de dados e clique em Conectar.

  4. No Pesquisador de Objetos, expanda Tabelas (em SQL Server Compact [Meu Computador\...\SyncCompactDB2] e verifique se a tabela Products existe, juntamente com as tabelas de controle.

  5. Selecione SQL Server Compact [My Computer\...\SyncCompactDB2] no Pesquisador de Objetos.

  6. Clique em Nova Consulta na barra de ferramentas.

  7. Digite e execute o comando SQL a seguir para confirmar se a tabela Products contém registros que foram copiados do primeiro cliente.

    select * from Products
    
  8. Mantenha o Visual Studio e o SQL Server Management Studio abertos.

Exemplo de código completo

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlServerCe;

using Microsoft.Synchronization;
using Microsoft.Synchronization.Data;
using Microsoft.Synchronization.Data.SqlServer;
using Microsoft.Synchronization.Data.SqlServerCe;

namespace ProvisionSecondCompactClient
{
    class Program
    {
        static void Main(string[] args)
        {
            // connect to the first compact client DB
            SqlCeConnection clientConn = new SqlCeConnection(@"Data Source='C:\SyncSQLServerAndSQLCompact\SyncCompactDB.sdf'");

            // create a snapshot of SyncCompactDB and save it to SyncCompactDB2 database
            SqlCeSyncStoreSnapshotInitialization syncStoreSnapshot = new SqlCeSyncStoreSnapshotInitialization();
            syncStoreSnapshot.GenerateSnapshot(clientConn, @"C:\SyncSQLServerAndSQLCompact\SyncCompactDB2.sdf");
        }
    }
}

Consulte também

Outros recursos

Como configurar e executar a sincronização de bancos de dados (SQL Server)