1

我们有一个 Office 插件,它使用带有通常 DBConnection 的 Sql CE 到文件系统中的 *.sdf('C:/...etc...')。当我们启动具有 Sql CE 增强的 Office 插件的应用程序的两个副本(测试用户可能会错误地执行的操作)时,Sql CE 数据库已损坏,Office 插件无法再访问其数据。

似乎我们缺少一些避免看似明显问题的基本方法。到目前为止,每个人都知道 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

4

1 回答 1

0

如果我正确理解您的用例实际上并不需要两个正在运行的应用程序,那么如果用户错误地这样做,您只需要捕获错误。

在这种情况下,检查您的插件是否已经在运行就足够了(无论您的语言/框架支持什么......)。如果有另一个实例,请不要实例化插件。

于 2009-09-29T14:36:16.383 回答