Compartilhar via


Método GenerateSnapshot

Gera um instantâneo de um arquivo de banco de dados existente do SQL Server Compact que pode ser usado para inicializar outro banco de dados do SQL Server Compact para sincronização.

Namespace:  Microsoft.Synchronization.Data.SqlServerCe
Assembly:  Microsoft.Synchronization.Data.SqlServerCe (em Microsoft.Synchronization.Data.SqlServerCe.dll)

Sintaxe

'Declaração
Public Sub GenerateSnapshot ( _
    sourceConnection As SqlCeConnection, _
    destinationDatabasePath As String _
)
'Uso
Dim instance As SqlCeSyncStoreSnapshotInitialization
Dim sourceConnection As SqlCeConnection
Dim destinationDatabasePath As String

instance.GenerateSnapshot(sourceConnection, _
    destinationDatabasePath)
public void GenerateSnapshot(
    SqlCeConnection sourceConnection,
    string destinationDatabasePath
)
public:
void GenerateSnapshot(
    SqlCeConnection^ sourceConnection, 
    String^ destinationDatabasePath
)
member GenerateSnapshot : 
        sourceConnection:SqlCeConnection * 
        destinationDatabasePath:string -> unit 
public function GenerateSnapshot(
    sourceConnection : SqlCeConnection, 
    destinationDatabasePath : String
)

Parâmetros

  • sourceConnection
    Tipo: SqlCeConnection
    Um objeto SqlCeConnection que contém uma conexão com o banco de dados do qual o instantâneo deve ser gerado.
  • destinationDatabasePath
    Tipo: System. . :: . .String
    O caminho de arquivo no qual o instantâneo deve ser gravado.

Exceções

Exceção Condição
ArgumentNullException

sourceConnection é um null Nothing nullptr unit uma referência nula (Nothing no Visual Basic) .

ArgumentException

destinationDatabasePath é um null Nothing nullptr unit uma referência nula (Nothing no Visual Basic) ou vazio.

destinationDatabasePath não é um arquivo,

– ou –

destinationDatabasePath é um caminho UNC.

DbSyncException

Não foi possível inicializar o instantâneo.

Comentários

A inicialização de instantâneo foi criada para reduzir o tempo necessário para inicializar um banco de dados de cliente. Depois que um banco de dados cliente tiver sido inicializado com o uso 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. Copie o instantâneo para cada cliente que precisar. Durante a primeira sessão de sincronização para um cliente, os metadados específicos do cliente são atualizados e as alterações ocorridas desde que o instantâneo foi criado são baixadas para o banco de dados cliente.

Importante

Instantâneos devem ser gerados só 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.

Exemplos

O exemplo de código a seguir gera um instantâneo denominado SyncSampleClient2.sdf do banco de dados SyncSampleClient1.sdf. Em seguida, o código sincroniza SyncSampleClient2.sdf com o banco de dados do servidor. Para exibir esse código no contexto de um exemplo completo, consulte Como configurar e executar a sincronização de bancos de dados (SQL Server).

// Create a snapshot from the SQL Server Compact database, which will be used to
// initialize a second Compact database. Again, this database could be provisioned
// by retrieving scope information from another database, but we want to 
// demonstrate the use of snapshots, which provide a convenient deployment
// mechanism for Compact databases.
SqlCeSyncStoreSnapshotInitialization syncStoreSnapshot = new SqlCeSyncStoreSnapshotInitialization("Sync");
syncStoreSnapshot.GenerateSnapshot(clientSqlCe1Conn, "SyncSampleClient2.sdf");

// The new SQL Server Compact client synchronizes with the server, but
// no data is downloaded because the snapshot already contains 
// all of the data from the first Compact database.
syncOrchestrator = new SampleSyncOrchestrator(
    new SqlSyncProvider("filtered_customer", serverConn, null, "Sync"),
    new SqlCeSyncProvider("filtered_customer", clientSqlCe2Conn, "Sync")
    );
syncStats = syncOrchestrator.Synchronize();
syncOrchestrator.DisplayStats(syncStats, "initial");
' Create a snapshot from the SQL Server Compact database, which will be used to 
' initialize a second Compact database. Again, this database could be provisioned 
' by retrieving scope information from another database, but we want to 
' demonstrate the use of snapshots, which provide a convenient deployment 
' mechanism for Compact databases. 
Dim syncStoreSnapshot As New SqlCeSyncStoreSnapshotInitialization("Sync")
syncStoreSnapshot.GenerateSnapshot(clientSqlCe1Conn, "SyncSampleClient2.sdf")

' The new SQL Server Compact client synchronizes with the server, but 
' no data is downloaded because the snapshot already contains 
' all of the data from the first Compact database. 
syncOrchestrator = New SampleSyncOrchestrator( _
    New SqlSyncProvider("filtered_customer", serverConn, Nothing, "Sync"), _
    New SqlCeSyncProvider("filtered_customer", clientSqlCe2Conn, "Sync"))
syncStats = syncOrchestrator.Synchronize()
syncOrchestrator.DisplayStats(syncStats, "initial")

Consulte também

Referência

SqlCeSyncStoreSnapshotInitialization Classe

Membros SqlCeSyncStoreSnapshotInitialization

Namespace Microsoft.Synchronization.Data.SqlServerCe