0

在 Windows Mobile 5 上运行的紧凑框架 .NET 3.5 应用程序中,我们看到正在记录以下错误消息:

Could not load database compaction library. Operation has been aborted.
   at System.Data.SqlServerCe.SqlCeEngine.ProcessResults(IntPtr pError, Int32 hr)
   at System.Data.SqlServerCe.SqlCeEngine.Repair(SEFIXOPTION option, String dstConnStr, RepairOption repairOption)
   at System.Data.SqlServerCe.SqlCeEngine.Compact(String connectionString)

in:

SQL Server Compact ADO.NET Data Provider

应用程序正在发出命令以压缩 SQL Server Compact 数据库文件并接收上述错误响应。

错误信息间歇性出现;有时压缩操作会完成,有时会记录上述错误。

谷歌搜索此错误消息会产生一些结果,表明内存不足(或正确类型的内存)是原因,但此错误并非在所有设备平台上都一致发生。特定制造商的某些 Windows Mobile 设备永远不会出现此错误,而其他制造商的某些 Windows Mobile 设备则经常出现此错误。

4

2 回答 2

1

您必须在设备上安装 .repl cab 文件,例如:sqlce.repl.ppc.wce5.armv4i.CAB

于 2011-12-28T18:58:46.037 回答
1

看起来这是由于您在数据库上发出某种修复选项而发生的。

您是否尝试过try...catch围绕相关操作编写一个块?

查看实际导致错误的代码会很有帮助。了解引发错误的方法会很有帮助。

这真的更像是一个评论,但它太长了,无法放入评论部分。

编辑:

嗨,理查德,

我不认为这是您在 MSDN 上的问题,是吗?>> LINK <<这是从 2009 年开始的。

我还在 dbaspot.com 上找到了>> THIS POST <<,它引用了内存不足的设备。您的开发设备上有多少“东西”?

于 2011-12-28T16:18:16.170 回答