我们有一个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