是什么导致“无法加载数据库压缩库”,我该如何解决?

时间:2011-12-28 15:49:31

标签: windows-mobile compact-framework sql-server-ce compact-database

在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数据库文件并接收上面的错误响应。

错误消息间歇性地发生;有时紧凑的操作会完成,有时会记录上面的错误。

Google搜索此错误消息会产生一些结果,这些结果表明缺少内存(或正确类型的内存)是原因,但此错误并非在所有设备平台上一致发生。来自特定制造商的某些Windows Mobile设备从未出现此错误,而来自其他制造商的设备通常会出现此错误。

2 个答案:

答案 0 :(得分:1)

看起来这是因为您在数据库上发出某种修复选项而导致的。

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

查看实际导致错误的代码会很有帮助。知道抛出错误的方法有很多帮助。

这实际上是一个评论,但是它太长了,无法放入评论部分。

修改

嗨理查德,

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

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

答案 1 :(得分:1)

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