2009-08-27 134 views
1

我們有一個Office插件,它使用Sql CE和通常的DBConnection到文件系統中的* .sdf('C:/ ... etc ...')。當我們啓動具有Sql CE增強的Office Addin的應用程序的兩個副本(測試用戶可能會犯的錯誤)時,Sql CE數據庫已損壞,Office Addin不能再訪問其數據。SQL Server CE + 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

回答

0

如果我理解正確的使用情況並不真正需要兩個運行的應用程序,你只需要在用戶錯誤地這樣做捕獲錯誤。

在這種情況下,它應該足以檢查您的插件是否已在運行(無論您的語言/框架支持那個...)。如果有另一個實例,則不要實例化插件。