2009-08-27 90 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

如果我理解正确的使用情况并不真正需要两个运行的应用程序,你只需要在用户错误地这样做捕获错误。

在这种情况下,它应该足以检查您的插件是否已在运行(无论您的语言/框架支持那个...)。如果有另一个实例,则不要实例化插件。