При использовании SQL Compact в Windows Mobile сохраняете ли вы файл sdf на карте памяти? - PullRequest
2 голосов
/ 26 апреля 2010

Имея некоторые проблемы с повреждением Sql Compact db в прошлом и прочитав статью об этих , я понял, что хранение файла sdf базы данных на карте памяти значительно увеличивает риск потери данных из-за дБ коррупции.

Храните ли вы sdf файл на карте памяти? Были ли у вас какие-либо проблемы, вызванные этим? На что следует обратить внимание, когда вы рекомендуете использовать конкретную марку или модель SD-карты в отношении стабильности и безопасности для использования с SQL Compact?

1 Ответ

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

Наличие базы данных на постоянном томе хранилища (будь то карта или внутренняя флэш-память) увеличивает вероятность повреждения, и это почти всегда происходит из-за цикла спящего режима. Когда устройство приостановлено, хранилище обычно отключается, а когда оно возобновляется, оно перемонтируется. В зависимости от реализации OEM, соединения могут или не могут пережить это разрушение и нарастить хорошо (я видел устройства, где соединение, удерживаемое в цикле ожидания / пробуждения, всегда будет выходить из строя, хотя не всегда с повреждением). *

Моя типичная методика для устройств, в которых устройство, находящееся в режиме ожидания / сна, во время работы - всегда закрывать базу данных после каждой «транзакции» с базой данных. Да, это замедляет работу, но значительно снижает как повреждение, так и недействительность соединения.

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

...