Использование методов Verify и Repair
Методы Verify и Repair служат для проверки целостности данных в БД Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) и исправления обнаруженных ошибок. Дополнительные сведения см. в разделе Использование методов Verify и Repair.
Проверка базы данных
Файлы базы данных SQL Server Compact Edition разделены на логические блоки размером по 4 килобайта, именуемые страницами. При записи каждой страницы в файл базы данных SQL Server Compact Edition вычисляет и сохраняет ее контрольную сумму. Если после записи в файл страница будет изменена или повреждена, она более не будет соответствовать ожидаемой контрольной сумме.
Метод Verify класса System.Data.SqlServerCe.SqlCeEngine заново вычисляет контрольные суммы всех страниц в файле базы данных и проверяет полученные контрольные суммы на соответствие ожидаемым величинам. Возвращенное методом значение "true" свидетельствует, что база данных не повреждена. Если возвращено значение "false", то файл базы данных поврежден и приложению следует вызвать метод Repair.
Восстановление базы данных
Если файл базы данных поврежден, можно попытаться восстановить его с помощью метода Repair объекта SqlCeEngine. Метод Repair служит для сканирования базы данных и вычисления контрольных сумм страниц. Если какая-либо контрольная сумма не совпадает с той, что была ранее вычислена при записи страницы в базу данных, то страница считается поврежденной.
Метод Repair можно вызвать с одним из двух приведенных ниже параметров.
- RepairOption.DeleteCorruptedRows
Если вызвать метод восстановления с параметром DeleteCorruptedRows, все поврежденные страницы будут удалены. Если поврежденная страница содержит схему базы данных, это может привести к значительной потере данных. Однако восстановленные таким способом данные не будут содержать ошибок. - RepairOption.RecoverCorruptedRows
Если вызвать метод восстановления с параметром RecoverCorruptedRows , будет предпринята попытка считать данные на поврежденных страницах. В результате можно восстановить больше данных, но нельзя гарантировать, что в восстановленных данных не будет логических ошибок.
Примечание. |
---|
Метод Repair следует применять, только если SQL Server Compact Edition возвращает ошибку с собственным номером ошибки 25017 (SSCE_M_DATABASECORRUPTED) либо метод Verify объекта SqlCeEngine возвращает значение false. |
Пример
Описание
В приведенном примере показан способ использования методов Verify и Repair.
Код
C#
SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");
if (false == engine.Verify())
{
MessageBox.Show("Database is corrupted.");
engine.Repair(null, RepairOption.RecoverCorruptedRows);
}
Код
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
См. также
Справочник
Объекты пространства имен System.Data.SqlServerCe
Пространство имен System.Data.SqlServerCe (справочная документация по .NET Framework)