Partager via


GenerateSnapshot méthode

Génère un instantané d'un fichier de base de données SQL Server Compact existant qui peut être utilisée pour initialiser une autre base de données SQL Server Compact pour la synchronisation.

Espace de noms :  Microsoft.Synchronization.Data.SqlServerCe
Assembly :  Microsoft.Synchronization.Data.SqlServerCe (dans Microsoft.Synchronization.Data.SqlServerCe.dll)

Syntaxe

'Déclaration
Public Sub GenerateSnapshot ( _
    sourceConnection As SqlCeConnection, _
    destinationDatabasePath As String _
)
'Utilisation
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
)

Paramètres

  • sourceConnection
    Type : SqlCeConnection
    Objet SqlCeConnection qui contient une connexion à la base de données à partir de laquelle l'instantané doit être généré.
  • destinationDatabasePath
    Type : System. . :: . .String
    Chemin d'accès au fichier dans lequel l'instantané doit être écrit.

Exceptions

Exception Condition
ArgumentNullException

sourceConnection est une null Nothing nullptr unit une référence Null (Nothing dans Visual Basic) .

ArgumentException

destinationDatabasePath est une null Nothing nullptr unit une référence Null (Nothing dans Visual Basic) ou vide,

destinationDatabasePath n'est pas un fichier,

—ou—

destinationDatabasePath est un chemin d'accès UNC.

DbSyncException

L'instantané n'a pas pu être initialisé.

Notes

L'initialisation de l'instantané est conçue pour réduire la durée d'initialisation d'une base de données client. Lorsqu'une base de données client a été initialisée à l'aide d'une initialisation complète, les bases de données suivantes peuvent être initialisées à l'aide d'un instantané de cette première base de données client. Un instantané est une base de données SQL Server Compact spécialement préparée qui contient le schéma de table, des données (facultatif) et l'infrastructure de suivi des modifications. Copiez cet instantané sur chaque client qui en a besoin. Pendant la première session de synchronisation pour un client, les métadonnées propres au client sont mises à jour et toutes les modifications apportées depuis la création de l'instantané sont téléchargées vers la base de données client.

Important

Des instantanés ne doivent être générés qu'en l'absence totale d'activité dans la base de données SQL Server Compact. Les opérations simultanées, quel que soit leur type, ne sont pas prises en charge pendant la génération de l'instantané.

Exemples

L'exemple de code suivant génère un instantané nommé SyncSampleClient2.sdf à partir de la base de données SyncSampleClient1.sdf. Le code synchronise ensuite SyncSampleClient2.sdf avec la base de données serveur. Pour afficher ce code dans le contexte d'un exemple complet, consultez Procédure : configurer et exécuter la synchronisation de bases de données (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")

Voir aussi

Référence

SqlCeSyncStoreSnapshotInitialization Classe

Membres SqlCeSyncStoreSnapshotInitialization

Espace de noms Microsoft.Synchronization.Data.SqlServerCe