Как мне повредить базу данных SQL CE? - PullRequest
4 голосов
/ 29 апреля 2010

Я хочу иметь возможность проверять поврежденную базу данных при запуске, а затем восстанавливать ее программным способом. Я могу сделать это достаточно легко.

Моя проблема в том, что я хочу проверить, что все работает так, как я ожидаю. Кто-нибудь знает способ целенаправленного повреждения базы данных, чтобы я мог проверить свой код?

1 Ответ

2 голосов
/ 29 апреля 2010

Вы можете загрузить SDF-файл в байтовый массив, произвольно изменить некоторые байты и сохранить массив обратно над исходным файлом (или, в этом отношении, загрузить файл в шестнадцатеричный редактор и перейти к нему всех обезьян Шекспира) .

Я думаю, что это будет делать то, что вы хотите, не делая то, что вы хотите. По моему опыту, проблемы, которые у меня были с поврежденными базами данных SqlCE, не были исправлены SqlCeEngine.Repair (см. этот ответ на связанный вопрос). Возможно, Repair может исправить базу данных, в которой некоторые ее байты были случайно изменены, но я уверен, что это будет зависеть от того, где в файле произошло изменение (например, где-то на странице данных или в заголовке файла, если есть)

...