Utilisation des méthodes Verify et Repair
Les méthodes Verify et Repair vous permettent de vérifier l'intégrité des données d'une base de données Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) et de résoudre les éventuels problèmes. Pour plus d'informations, consultez Utilisation des méthodes Verify et Repair.
Vérification d'une base de données
Les fichiers de base de données SQL Server Compact Edition sont divisés en unités logiques de 4 Ko appelées « pages ». Chaque page étant écrite dans le fichier de base de données, SQL Server Compact Edition calcule et enregistre une somme de contrôle pour la page. Si la page est modifiée ou endommagée une fois écrite dans le fichier, elle ne correspond plus à sa somme de contrôle attendue.
Appelez la méthode Verify de la classe System.Data.SqlServerCe.SqlCeEngine pour recalculer les sommes de contrôle de chaque page du fichier de base de données et vérifier que les sommes de contrôle correspondent aux valeurs attendues. Si cette méthode renvoie la valeur true, cela indique que le fichier de base de données n'a pas été endommagé. Si elle renvoie la valeur false, cela signifie que le fichier de base de données a été endommagé, auquel cas l'application doit appeler la méthode Repair.
Réparation d'une base de données
En cas d'altération d'un fichier de base de données, vous pouvez essayer de le récupérer à l'aide de la méthode Repair de l'objet SqlCeEngine. La méthode Repair analyse la base de données et calcule les sommes de contrôle des pages. Si une somme de contrôle ne correspond pas à la somme de contrôle précédemment calculée lors de l'écriture d'une page dans la base de données, cette page est considérée comme endommagée.
Deux options permettent d'appeler la méthode Repair :
- RepairOption.DeleteCorruptedRows
Si vous appelez la méthode de réparation avec la valeur DeleteCorruptedRows, toutes les pages endommagées sont rejetées. Cette opération peut engendrer une perte significative de données si la page endommagée contient un schéma de base de données. Toutefois, les données récupérées à l'aide de cette option doivent être exemptes d'altération. - RepairOption.RecoverCorruptedRows
Si vous appelez la méthode de réparation avec la valeur RecoverCorruptedRows , la base de données essaie de lire les données à partir des pages endommagées. Cette opération peut permettre la récupération d'une plus grande quantité de données mais ne garantit pas que celles-ci soient exemptes d'altération logique.
Remarque : |
---|
La méthode Repair n'est utile que si SQL Server Compact Edition renvoie une erreur portant le numéro d'erreur native 25017 (SSCE_M_DATABASECORRUPTED) ou qu'un appel de la méthode Verify de l'objet SqlCeEngine renvoie la valeur false. |
Exemple
Description
L'exemple ci-dessous illustre l'utilisation des méthodes Verify et Repair.
Code
C#
SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");
if (false == engine.Verify())
{
MessageBox.Show("Database is corrupted.");
engine.Repair(null, RepairOption.RecoverCorruptedRows);
}
Code
Visual Basic
Dim engine As New SqlCeEngine("Data Source = AdventureWorks.sdf")
If False = engine.Verify() Then
MessageBox.Show("Database is corrupted.")
engine.Repair(Nothing, RepairOption.RecoverCorruptedRows)
End If
Voir aussi
Référence
Objets de l'espace de noms System.Data.SqlServerCe
System.Data.SqlServerCe Namespace (documentation de référence .NET Framework)