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