SQL Server CE + предотвращение конфликтов чтения и записи надстроек? - PullRequest
1 голос
/ 27 августа 2009

У нас есть Office Addin, который использует Sql CE с обычным DBConnection к * .sdf в файловой системе ('C: / ... etc ...'). Когда мы запускаем две копии приложения, имеющего Sql CE, дополненный Office Addin (проверяя, что пользователь может сделать по ошибке), база данных Sql CE становится поврежденной, и Office Addin больше не может получить доступ к своим данным.

Кажется, нам не хватает какого-то базового способа избежать кажущейся очевидной проблемы. К настоящему времени все знают, что Sql CE не блокирует свои строки, допуская тот вид повреждения, который может вызвать множественная запись в один и тот же * .sdf.

Возможно, ответ "не делай этого"; и что Sql CE не предназначен для обработки этого случая. Но, безусловно, большинство приложений Sql CE имеют аналогичный риск ошибочного запуска более чем одного процесса и попытки записи в один и тот же * .sdf?

Нам нравится небольшой размер Sql CE, бесплатность и простота интеграции с нашими надстройками. Но мы посмотрели на сравнения Sql Server Express и 2008: http://download.microsoft.com/download/A/4/7/A47B7B0E-976D-4F49-B15D-F02ADE638EBE/Compact_Express_Comparison.doc

1 Ответ

0 голосов
/ 29 сентября 2009

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

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

...